(function() {
    window.__BuildEnv__ = {
        "buildTime": "2021-01-06 11:31:37",
        "kulplib": {
            "version": "1.2.49"
        },
        "kulp": {
            "version": "1.1.6"
        },
        "wxgamelib": {
            "version": "1.2.16"
        },
        "buildVersion": "20210106113137"
    }
}
)();
!function(e) {
    var t = {};
    function n(i) {
        if (t[i])
            return t[i].exports;
        var r = t[i] = {
            i: i,
            l: !1,
            exports: {}
        };
        return e[i].call(r.exports, r, r.exports, n),
        r.l = !0,
        r.exports
    }
    n.m = e,
    n.c = t,
    n.d = function(e, t, i) {
        n.o(e, t) || Object.defineProperty(e, t, {
            enumerable: !0,
            get: i
        })
    }
    ,
    n.r = function(e) {
        "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, {
            value: "Module"
        }),
        Object.defineProperty(e, "__esModule", {
            value: !0
        })
    }
    ,
    n.t = function(e, t) {
        if (1 & t && (e = n(e)),
        8 & t)
            return e;
        if (4 & t && "object" == typeof e && e && e.__esModule)
            return e;
        var i = Object.create(null);
        if (n.r(i),
        Object.defineProperty(i, "default", {
            enumerable: !0,
            value: e
        }),
        2 & t && "string" != typeof e)
            for (var r in e)
                n.d(i, r, function(t) {
                    return e[t]
                }
                .bind(null, r));
        return i
    }
    ,
    n.n = function(e) {
        var t = e && e.__esModule ? function() {
            return e.default
        }
        : function() {
            return e
        }
        ;
        return n.d(t, "a", t),
        t
    }
    ,
    n.o = function(e, t) {
        return Object.prototype.hasOwnProperty.call(e, t)
    }
    ,
    n.p = "//res.wx.qq.com/wechatgame/product/webpack/commlib/",
    n(n.s = 47)
}([function(e, t, n) {
    "use strict";
    function i() {
        var e = {};
        if ("undefined" == typeof __VUE_SSR_CONTEXT__)
            try {
                top.window && top.window.document && (e = top.window)
            } catch (t) {
                e = window
            }
        return e
    }
    function r(e, t) {
        return (t || i()).document.getElementById(e)
    }
    e.exports = {
        S: r,
        SCN: function(e, t) {
            return (t || i()).document.getElementsByClassName(e)
        },
        STN: function(e, t) {
            return (t || i()).document.getElementsByTagName(e)
        },
        dom: r,
        window: i()
    }
}
, function(e, t, n) {
    "use strict";
    var i, r, o, a, s, c, l, u, d, p, f, g, m = n(3), h = m.getQueryStr, v = n(0), w = {
        isCSR: m.isCSR
    };
    if (w.isCSR) {
        var _ = m.getCSR().getSystemInfo();
        i = "",
        r = /ios/i.test(_.system),
        o = /android/i.test(_.system),
        a = !0,
        s = !1,
        c = !1,
        l = !1,
        u = !1,
        d = !1,
        p = /android/i.test(_.system),
        f = !1,
        g = /ios/i.test(_.system),
        {},
        w.isiOS = r || d,
        w.isLuggage = !1,
        w.isPad = /ipad/i.test(_.model),
        w.isiOS9 = /OS 9/i.test(_.system),
        w.isiOS10 = /OS 10/i.test(_.system),
        w.isiOS11 = /OS 11/i.test(_.system),
        w.isAndroid = o,
        w.isWechat = !0,
        w.isPcWechat = !1,
        w.isPC = !1,
        w.isDev = !1,
        w.isMSDK = l,
        w.isAndroidMSDK = u,
        w.isIosMSDK = d,
        w.isXweb = p,
        w.isX5 = f,
        w.isWKweb = g,
        w.isIosLiuhai = !1,
        w.isDarkMode = !!_.isDarkMode,
        w.onDarkModeChange = function() {}
        ,
        w.deviceType = w.isPad ? "ipad" : r ? "iphone" : "android",
        w.getCSR = m.getCSR
    } else {
        i = v.window.navigator.userAgent,
        r = /(iPhone|iPad|iPod|iOS)/i.test(i),
        o = /(Android)/i.test(i),
        a = -1 != i.indexOf("MicroMessenger"),
        s = -1 != i.indexOf("WindowsWechat"),
        c = !1,
        l = /(MSDK)/i.test(i),
        u = /MSDK\/[\d\.]{1,}?a/i.test(i),
        d = /MSDK\/[\d\.]{1,}?i/i.test(i),
        p = /XWEB/i.test(i),
        f = /TBS/i.test(i),
        g = /WKType/i.test(i),
        {},
        /Android|BlackBerry|IEMobile|iPhone|iPad|iPod/.test(i) || (c = !0),
        w.isiOS = r || d,
        w.isLuggage = /Luggage/i.test(i),
        w.isPad = /iPad/i.test(i),
        w.isiOS9 = r && -1 != i.indexOf("OS 9"),
        w.isiOS10 = r && -1 != i.indexOf("OS 10"),
        w.isiOS11 = r && -1 != i.indexOf("OS 11"),
        w.isAndroid = o || u,
        w.isWechat = a,
        w.isPcWechat = s,
        w.isPC = c,
        w.isDev = !1,
        w.isMSDK = l,
        w.isAndroidMSDK = u,
        w.isIosMSDK = d,
        w.isXweb = p,
        w.isX5 = f,
        w.isWKweb = g,
        w.isIosLiuhai = r && window.screen.height >= 812,
        w.isTestEnv = function() {
            return new Promise((function(e) {
                a && m.getValue(WXGAME, "WxBridge.VerifyJsapiModule") ? WXGAME.WxBridge.VerifyJsapiModule.callAfterLoaded((function(t) {
                    t && t.isTestEnv ? e(!0) : e(!1)
                }
                )) : e(!1)
            }
            ))
        }
        ,
        w.isTestData = !!h("is_test_data"),
        w.isDarkMode = !1;
        var y = [];
        w.onDarkModeChange = function(e) {
            e(),
            y.push(e)
        }
        ,
        function() {
            if (window.matchMedia) {
                var e = window.matchMedia("(prefers-color-scheme: dark)")
                  , t = function(e) {
                    var t = e.matches;
                    w.isDarkMode = !!t,
                    y.forEach((function(e) {
                        return e()
                    }
                    ))
                };
                e.addListener(t),
                t(e),
                -1 !== location.search.indexOf("darkmode=1") && (w.isDarkMode = !0),
                -1 !== location.search.indexOf("darkmode=0") && (w.isDarkMode = !1)
            }
        }(),
        w.deviceType = function() {
            var e = v.window.navigator.userAgent
              , t = {
                iPhone: 0,
                iPad: 0,
                iPod: 0,
                Android: 0
            }
              , n = {};
            for (var i in t) {
                var r = new RegExp(i,"i");
                if (n[i] = r.test(e) ? i : t[i],
                n[i])
                    return i.toLowerCase()
            }
            return ""
        }(),
        function(e) {
            var t = i.match(/OS[\s]+(\d{1,2}?)_\d{1}/);
            if ((t = t || []).length >= 2) {
                var n = parseInt("" + t[1]);
                e.iOSVersion = isNaN(n) ? 0 : n
            }
        }(w)
    }
    w.versionCompare = function(e, t) {
        for (var n = e.split("."), i = t.split("."), r = 0, o = Math.min(n.length, i.length); r < o; r++) {
            var a = parseInt(n[r]) - parseInt(i[r]);
            if (0 != a)
                return a
        }
        return n.length - i.length
    }
    ,
    w.clientVersion = function(e) {
        var t = ""
          , n = [1e3, 100, 1]
          , i = 0;
        if (m.isCSR)
            t = m.getCSR().getSystemInfo().clientVersion;
        else {
            var r = (v.window.navigator.userAgent || v.window.navigator.wxuserAgent).match(/MicroMessenger\/([\d\.]+)/i);
            r && r.length > 1 && (t = r[1])
        }
        if (e)
            return t;
        for (var o = 0, a = (t = t.split(".").slice(0, 3)).length; o < a; o++) {
            var s = parseInt(t[o].substr(0, 2));
            isNaN(s) || (i += s * n[o])
        }
        return i
    }
    ,
    w.getHexClientVersion = function() {
        var e;
        if (m.isCSR)
            e = m.getCSR().getSystemInfo().clientVersion.split(".").slice(0, 3);
        else {
            var t = v.window.navigator.userAgent || v.window.navigator.wxuserAgent || ""
              , n = /MicroMessenger\/([\d\.]+)(?:\((0x[0-9a-fA-F]+)\))?/i.exec(t);
            if (!n)
                return 0;
            if (n[2])
                return Number(n[2]);
            e = n[1].split(".").slice(0, 3)
        }
        var i = ["0x"];
        r ? i.push("1") : i.push("2");
        for (var o = 0; o < 3; o++) {
            var a = e[o] || ""
              , s = parseInt(a.substr(0, 2));
            0 === o ? !s || isNaN(s) ? i.push("0") : s < 16 ? i.push(s.toString(16)) : i.push("f") : !s || isNaN(s) ? i.push("00") : s < 16 ? (i.push("0"),
            i.push(s.toString(16))) : s >= 16 && s < 256 ? i.push(s.toString(16)) : i.push("ff")
        }
        return i.push("00"),
        Number(i.join(""))
    }
    ,
    w.hexVersionCompare = function() {
        var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0
          , t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0;
        return e - t
    }
    ,
    w.getNetworkType = function() {
        var e = ""
          , t = {
            wifi: 0,
            uninet: 2,
            uniwap: 2,
            cmnet: 2,
            cmwap: 2,
            ctnet: 2,
            ctwap: 2,
            "2g": 2,
            "3g": 3,
            "3gnet": 3,
            "3gwap": 3,
            nonwifi: 3,
            "4g": 4,
            lte: 4,
            ctlte: 4,
            "3g+": 4,
            "4gnet": 4,
            NON_NETWORK: 1,
            WIFI: 0,
            "5G": 5,
            "4G": 4,
            "3G": 3,
            "2G": 2
        };
        if (m.isCSR)
            e = m.getCSR().getSystemInfo().networkType;
        else {
            var n = (v.window.navigator.userAgent || v.window.navigator.wxuserAgent).match(/NetType\/[^\s]+/i);
            n && n.length >= 1 && (e = n[0].split("/")[1].toLowerCase())
        }
        return e in t ? t[e] + "" : "1"
    }
    ,
    w.isWepkgInUrl = function() {
        return !!h("wechat_pkgid", null, v.window)
    }
    ,
    w.isWepkg = function() {
        if (m.isCSR)
            return !1;
        var e = this.isWepkgInUrl()
          , t = this.clientVersion(!0);
        if (this.versionCompare(t, "6.5.9") >= 0) {
            var n = v.window.__usewepkg__;
            return null != n && (!!n && e)
        }
        t = this.clientVersion(!0);
        var i = this.isAndroid ? "6.5.6" : "6.5.8";
        return this.versionCompare(t, i) >= 0 && e
    }
    ,
    w.getIsInMiniAppAsync = function(e) {
        if (m.isCSR)
            return !1;
        var t, n = v.window.__wxjs_environment, i = v.window.userAgent || "";
        if (n || i) {
            var r = "miniprogram" === n || -1 != i.indexOf("miniprogram");
            e(r)
        } else
            "function" == typeof e && v.window.document.addEventListener("WeixinJSBridgeReady", (function() {
                t && (clearTimeout(t),
                t = null),
                e("miniprogram" === v.window.__wxjs_environment)
            }
            ), !1),
            t = setTimeout((function() {
                e && e(!1)
            }
            ), 2e3)
    }
    ,
    w.canIReport = function() {
        return !WXGAME || !WXGAME.GlobalConfig || WXGAME.GlobalConfig.reporter.canIReport()
    }
    ,
    e.exports = w
}
, function(e, t) {
    e.exports = function(e) {
        return e && e.__esModule ? e : {
            default: e
        }
    }
}
, function(e, t, n) {
    "use strict";
    var i = n(0)
      , r = "undefined" != typeof __VUE_SSR_CONTEXT__;
    function o() {
        return __VUE_SSR_CONTEXT__
    }
    function a(e, t) {
        for (var n = t.split("."), i = e || {}, r = null; r = n.shift(); ) {
            if (void 0 === i[r] || null === i[r])
                return;
            i = i[r]
        }
        return i
    }
    e.exports = {
        S: function(e, t) {
            return (t || i.window).document.getElementById(e)
        },
        SCN: function(e, t) {
            return (t || i.window).document.getElementsByClassName(e)
        },
        STN: function(e, t) {
            return (t || i.window).document.getElementsByTagName(e)
        },
        getValue: a,
        extend: function() {
            for (var e = arguments, t = e[0], n = 1, i = e.length; n < i; n++) {
                var r = e[n];
                for (var o in r)
                    t[o] = r[o]
            }
            return t
        },
        unikey: function(e) {
            return [e, "f", Math.random()].join("").split(".").join("")
        },
        log: function(e) {
            (new Image).src = "https://game.weixin.qq.com/favicon.ico?ts=" + (new Date).getTime() + "&log=" + encodeURIComponent(e)
        },
        getQueryStr: function(e, t, n) {
            var i = t;
            if (r) {
                if (!t)
                    return a(o(), "query." + e)
            } else {
                if (void 0 === n && (n = window),
                void 0 === n.location)
                    throw "Illegal Context,Need context.location";
                i = t || n.location.search
            }
            var s = (i = ("" + i).replace(/#(.*)$/g, "").replace(/&amp;/g, "&")).match(new RegExp("[?&]" + e + "=([^&]+)","i"));
            return null == s || s.length <= 1 ? "" : s[1]
        },
        removeQueryStringKey: function(e, t) {
            var n = t || location.href
              , i = new RegExp("([?&])" + e + "=([^&]*)&?","i");
            return n.replace(i, "$1")
        },
        buildAPI: function(e, t) {
            var n = null
              , r = /(iPhone|iPad|iPod|iOS)/i.test(i.window.navigator.userAgent)
              , o = /(Android)/i.test(i.window.navigator.userAgent)
              , a = e.lastIndexOf(".")
              , s = function(e) {
                var t, n = e.split("."), i = window;
                for (var r in n)
                    !i[t = n[r]] && (i[t] = {}),
                    i = i[t];
                return i
            }(e.substring(0, a));
            n = t.iOS && r ? t.iOS : t.android && o ? t.android : function() {}
            ,
            s[e.substring(a + 1)] = n
        },
        isCSR: r,
        getCSR: o
    }
}
, function(e, t) {
    function n(t) {
        return "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? e.exports = n = function(e) {
            return typeof e
        }
        : e.exports = n = function(e) {
            return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
        }
        ,
        n(t)
    }
    e.exports = n
}
, function(e, t, n) {
    "use strict";
    if (n(1).isCSR)
        e.exports = {};
    else {
        var i = n(0)
          , r = n(8)
          , o = n(15)
          , a = n(9);
        !function(t, n) {
            var s;
            if (t.WXGAME && t.WXGAME.WxBridge)
                return s = t.WXGAME.WxBridge,
                void (e.exports = s);
            i.window.navigator.userAgent.indexOf("MicroMessenger/");
            var c = /(Android)/i.test(i.window.navigator.userAgent);
            i.window.jsapiQueue = i.window.jsapiQueue || new o,
            i.window.jsapiQueue.setSync(),
            i.window.verifiedMap = {};
            var l, u = ["hideMenuItems", "showMenuItems", "cache", "setPageTitle", "downloadAppInternal", "launchApplication", "addDownloadTaskStraight", "clearBounceBackground", "disableBounceScroll", "dispatchEvent", "openUrlWithExtraWebview", "openGameWebView", "openCustomWebview", "openWKWebView", "pauseDownloadTask", "resumeDownloadTask", "recordHistory", "getGameCommInfo", "launchMiniProgram", "openGameUrlWithExtraWebView", "reportGamePageTime", "currentMpInfo", "getNetworkType", "showSmileyPanel", "onGetKeyboardHeight", "operateGameCenterMsg", "reportGameWeb", "jumpDownloaderWidget", "getDownloadWidgetTaskInfos", "openGameCenter", "clearGameData", "setNavigationBarButtons", "openGameRegion", "onNetWorkChange", "openWeApp", "batchUpdateWepkg", "profile", "enableGameView", "uploadMediaFile", "shareCustomContent", "setGameTab", "editAddress", "setNavigationBarColor", "startGameLifeConversation", "setScreenOrientation"], d = ["menuItem:share:weiboApp", "menuItem:share:QZone", "menuItem:share:qq", "menuItem:share:facebook", "menuItem:openWithQQBrowser", "menuItem:openWithSafari", "menuItem:copyUrl", "menuItem:share:brand", "menuItem:share:email", "menuItem:wework"], p = {};
            function f(e, n, o) {
                var a = t.WXGAME || {}
                  , s = (r = a.baseQualityReport || r).StartRunner("jsbridge_base.verifyCall", {
                    act: e
                }, null);
                s.EndLogic({
                    err_msg: "jsbridge_base.verifyCall starts"
                });
                var c = function() {
                    for (var r = !0, a = 0, c = (e = e || []).length; a < c; a++)
                        if (!i.window.verifiedMap[e[a]]) {
                            r = !1;
                            break
                        }
                    if (!0 === r)
                        return n.err_msg = "preVerifyJSAPI:ok",
                        void (o && o(!0, n));
                    i.window.jsapiQueue.run((function(r) {
                        var a = this
                          , c = !0;
                        if (null != r) {
                            r.verifiedList = r.verifiedList || [];
                            for (var l = 0, u = e.length; l < u; l++)
                                if (null == r.verifiedList[e[l]]) {
                                    c = !1;
                                    break
                                }
                        }
                        if (null != r && !0 === c) {
                            var d = {};
                            1 == r.ret ? (n.res = r.res,
                            d = n) : d = r.res,
                            a.done(r),
                            o && o(r.ret, d)
                        } else
                            window.ReportLuggage && window.NavigationStart && window.ReportLuggage.previrifyBgn((new Date).getTime() - window.NavigationStart, (new Date).getTime(), window.NavigationStart),
                            h("preVerifyJSAPI", {
                                verifyJsApiList: e,
                                verifyAppId: "wx62d9035fd4fd2059",
                                verifyTimestamp: n.timestamp || t.timestamp,
                                verifyNonceStr: n.noncestr || t.noncestr,
                                verifySignType: "sha1",
                                verifySignature: n.signature || t.signature
                            }, (function(t) {
                                var r = {}
                                  , c = null;
                                if (t && -1 != (t.err_msg || t.errMsg || "").indexOf(":ok")) {
                                    c = !0,
                                    window.ReportLuggage && window.NavigationStart && window.ReportLuggage.previrify((new Date).getTime() - window.NavigationStart, (new Date).getTime(), window.NavigationStart),
                                    !window.performance || !window.performance.timing.navigationStart || window.WxGamePerformanceParams && window.WxGamePerformanceParams.WebPreVerifyTime || (window.WxGamePerformanceParams = window.WxGamePerformanceParams || {},
                                    window.WxGamePerformanceParams.WebPreVerifyTime = (new Date).getTime() - window.performance.timing.navigationStart);
                                    for (var l = 0, u = (e = e || []).length; l < u; l++)
                                        i.window.verifiedMap[e[l]] = !0
                                } else {
                                    s.EndLogic({
                                        err_msg: "jsbridge_base.verifyCall_fail" + JSON.stringify(t)
                                    }),
                                    c = !1;
                                    for (l = 0,
                                    u = (e = e || []).length; l < u; l++)
                                        i.window.verifiedMap[e[l]] = !1
                                }
                                var d = {
                                    ret: c,
                                    res: t,
                                    verifiedList: e
                                };
                                1 == d.ret ? (n.res = d.res,
                                r = n) : r = d.res,
                                a.done(d),
                                o && o(d.ret, r)
                            }
                            ))
                    }
                    ))
                };
                i.window.WeixinJSBridge ? c.call(i.window) : i.window.document.addEventListener("WeixinJSBridgeReady", (function() {
                    c.call(i.window)
                }
                ))
            }
            function g(e) {
                var n = this;
                e = e || function() {}
                ,
                i.window.WeixinJSBridge ? (window.logInfo && !window.hasBridgeTime && logInfo("getBridge", " top window bridge already exists"),
                window.ReportLuggage && window.NavigationStart && !window.reportJsbridgeReadyBgn && (window.ReportLuggage.jsbridgeReadyBgn((new Date).getTime() - window.NavigationStart, (new Date).getTime(), window.NavigationStart),
                window.ReportLuggage.jsbridgeReadyEnd((new Date).getTime() - window.NavigationStart, (new Date).getTime(), window.NavigationStart),
                window.reportJsbridgeReadyBgn = !0,
                window.reportJsbridgeReadyEnd = !0),
                window.hasBridgeTime = (new Date).getTime(),
                e && e.call(n, i.window.WeixinJSBridge)) : (window.logInfo && logInfo("getBridge", " top window bridge not exists"),
                t.hasNoBridgeTime = (new Date).getTime(),
                e.isCalled = !1,
                c && (t.preReadyAdded || i.window.document.addEventListener("WeixinJSBridgePreReady", (function() {
                    t.preReadyAdded = !0,
                    t.bridgeReadyTime1 = (new Date).getTime(),
                    0 == e.isCalled && (e.call(n, i.window.WeixinJSBridge),
                    e.isCalled = !0)
                }
                ))),
                window.ReportLuggage && window.NavigationStart && !window.reportJsbridgeReadyBgn && (window.ReportLuggage.jsbridgeReadyBgn((new Date).getTime() - window.NavigationStart, (new Date).getTime(), window.NavigationStart),
                window.reportJsbridgeReadyBgn = !0),
                i.window.document.addEventListener("WeixinJSBridgeReady", (function() {
                    window.ReportLuggage && window.NavigationStart && !window.reportJsbridgeReadyEnd && (window.ReportLuggage.jsbridgeReadyEnd((new Date).getTime() - window.NavigationStart, (new Date).getTime(), window.NavigationStart),
                    window.reportJsbridgeReadyEnd = !0),
                    !window.performance || !window.performance.timing.navigationStart || window.WxGamePerformanceParams && window.WxGamePerformanceParams.JsapiReadyTime || (window.WxGamePerformanceParams = window.WxGamePerformanceParams || {},
                    window.WxGamePerformanceParams.JsapiReadyTime = (new Date).getTime() - window.performance.timing.navigationStart),
                    t.bridgeReadyTime2 = (new Date).getTime(),
                    0 == e.isCalled && (e.call(n, i.window.WeixinJSBridge),
                    e.isCalled = !0)
                }
                )))
            }
            function m(e) {
                h("setGameData", {
                    key: "A8KeyStoreKey",
                    value: JSON.stringify(e),
                    expireTime: 1296e3
                }, (function(e) {
                    -1 == (e.err_msg || "").toLowerCase().indexOf(":ok") && a.logInfo("saveLoginedA8key_setGameData", e)
                }
                ))
            }
            function h(e, n, i) {
                g((function(o) {
                    var a = t.WXGAME || {}
                      , s = (r = a.baseQualityReport || r).StartLogic(r.LOGIC_CONST.TypeTextEnum.JSAPI, e, n, null);
                    o.invoke(e, n, (function(e) {
                        s.EndLogic(e),
                        i && i(e)
                    }
                    ))
                }
                ))
            }
            function v(e, n) {
                e in p || (p[e] = [],
                i.window.WeixinJSBridge.on(e, (function(n) {
                    var i = (t.WXGAME || {}).baseQualityReport || r
                      , o = i.StartLogic(i.LOGIC_CONST.TypeTextEnum.JSAPI, e, {}, null);
                    a.logInfo("base_jsapi_on", e),
                    function(e, t) {
                        if (e in p)
                            for (var n = 0, i = p[e].length; n < i; n++)
                                p[e][n](t),
                                p[e][n].called = !0
                    }(e, n),
                    o.EndLogic(n)
                }
                )));
                for (var o = 0, s = p[e].length; o < s; o++)
                    if (n == p[e][o])
                        return;
                p[e].push(n)
            }
            l = t._wxBridge_base ? t._wxBridge_base : {
                apis: u,
                menuItems: d,
                getBridge: g,
                verifyCall: f,
                invoke: h,
                call: h,
                on: function(e, t) {
                    i.window.WeixinJSBridge ? v(e, t) : g((function() {
                        v(e, t)
                    }
                    ))
                },
                filterOptionMenu: function(e, t) {
                    f(u, (e = e || {}) || {}, (function(n) {
                        t && "function" == typeof t && t(n),
                        e && !e.noHide && h("hideMenuItems", {
                            menuList: d
                        })
                    }
                    ))
                },
                getA8key: function(e) {
                    var n = t.WXGAME || {}
                      , o = (r = n.baseQualityReport || r).StartRunner("jsbridge_base.getA8key", {}, null)
                      , a = 0;
                    (e = e || function() {}
                    ).isCbkCalled = !1,
                    function(e) {
                        !i.window.onGetA8KeyUrlOned && i.window.WeixinJSBridge && i.window.WeixinJSBridge.on("onGetA8KeyUrl", (function(t) {
                            window.logInfo && logInfo("getUinKey", t, "get Login from Event onGetA8KeyUrl"),
                            !1 === e.isCbkCalled && (m(t),
                            e.isCbkCalled = !0,
                            e && e(t, "a8keyonGetA8KeyUrl"))
                        }
                        )),
                        i.window.onGetA8KeyUrlOned = !0
                    }(e),
                    function t() {
                        h("getWePkgAuthResult", {}, (function(n) {
                            window.logInfo && logInfo("getA8key", n, "get Login from getWePkgAuthResult");
                            var i = ("" + n.err_msg).replace(/[\s_]/g, "").toLowerCase()
                              , r = -1 != i.indexOf("notreturn") || -1 != i.indexOf("failfullurlempty");
                            if (-1 != i.indexOf(":ok"))
                                !1 === e.isCbkCalled && (m(n),
                                e.isCbkCalled = !0,
                                e && e(n, "a8keygetWePkgAuthResult"));
                            else {
                                if (r) {
                                    if (++a <= 10)
                                        return window.logError && logError("getA8key", n, "trying " + a + " times getWePkgAuthResult"),
                                        void setTimeout(t, 500);
                                    var s = "try " + a + " times getWePkgAuthResult Failed";
                                    return window.logError && logError("getA8key", n, s, "I got no onGetA8KeyUrl Event, Page all crashed"),
                                    o.EndLogic({
                                        err_msg: s
                                    }),
                                    void (!1 === e.isCbkCalled && (e.isCbkCalled = !0,
                                    function(e, t) {
                                        e.EndLogic({
                                            err_msg: "getPreLoginedA8key"
                                        }),
                                        h("getGameData", {
                                            key: "A8KeyStoreKey"
                                        }, (function(n) {
                                            if (-1 != (n.err_msg || "").toLowerCase().indexOf(":ok")) {
                                                var i = "";
                                                try {
                                                    i = JSON.parse(n.value)
                                                } catch (e) {
                                                    i = {}
                                                }
                                                t && t(i),
                                                e.EndLogic({
                                                    err_msg: "getPreLoginedA8key_success"
                                                })
                                            } else
                                                t && t(!1),
                                                e.EndLogic({
                                                    err_msg: "getPreLoginedA8key_fail_forjsapi"
                                                })
                                        }
                                        ))
                                    }(o, (function(t) {
                                        !1 === t ? e && e({
                                            err_msg: s
                                        }, "wepkgToUrl") : e && e(t, "retryUseOldA8key")
                                    }
                                    ))))
                                }
                                -1 != i.indexOf("offline") ? !1 === e.isCbkCalled && (e.isCbkCalled = !0,
                                e && e({
                                    err_msg: "fail_offline"
                                }, "wepkgOfflineToUrl")) : (o.EndLogic({
                                    err_msg: "unknow getA8key",
                                    res: n
                                }),
                                !1 === e.isCbkCalled && (e.isCbkCalled = !0,
                                e && e({
                                    err_msg: "unknow getA8key"
                                }, "unknow")))
                            }
                        }
                        ))
                    }
                    .call(t)
                }
            },
            t._wxBridge_base = l,
            e.exports = s || l
        }(window, window.document)
    }
}
, function(e, t, n) {
    "use strict";
    var i = n(2)(n(4))
      , r = n(0)
      , o = (r.window,
    n(29));
    function a(e, t, n) {
        t = t || "&",
        n = n || "=";
        var i = e.split(t)
          , r = {};
        for (var o in i) {
            var a = i[o].split(n);
            2 == a.length && (r[a[0]] = a[1])
        }
        return r
    }
    function s(e, t) {
        var n = "" + (e || "");
        return t && (n = n.replace(/<[^>]+>/g, "")),
        n.replace(/</gm, "&lt;").replace(/>/gm, "&gt;").replace(/\"/gm, "&quot;").replace(/\'/gm, "&#39;")
    }
    e.exports = {
        format: function(e, t, n) {
            return void 0 === n && (n = !0),
            n = !!n,
            (e += "").replace(/\{(\w+)\}/g, (function(e, i) {
                var r = void 0 !== t[i] ? t[i].toString() : e;
                return n ? s(r) : r
            }
            ))
        },
        filterXSS: s,
        mapToStr: function(e, t, n) {
            try {
                t = t || "&",
                n = n || "=";
                var i = [];
                for (var r in e)
                    i.push(r + n + e[r]);
                return i.join(t)
            } catch (e) {
                alert(e.message)
            }
        },
        strToMap: a,
        trim: function(e) {
            return (e && e.replace ? e : "").replace(/(^\s*)|(\s*$)/g, "")
        },
        isIOS: function() {
            return /(iPhone|iPad|iPod|iOS)/i.test(r.window.navigator.userAgent)
        },
        filterArrXSS: function(e, t) {
            for (var n = 0, i = (e = e || []).length; n < i; n++)
                e[n] = s(e[n], t);
            return e
        },
        filterImg: function(e) {
            var t = /android/i.test(r.window.navigator.userAgent)
              , n = (e + "").replace(/^\s*https?:\/\//i, "").replace(/^\s*\/\//, "");
            return /^\/[^\/]/i.test(e) ? e : (t ? "http:" : location.protocol) + "//" + n
        },
        insertHTMLFilterXss: function(e, t, n) {
            if ("object" === (0,
            i.default)(e)) {
                t = e.elem,
                n = e.unXss;
                var r = e.position
                  , o = n ? e.data : s(e.data);
                t.insertAdjacentHTML(r, o)
            } else
                "string" == typeof e && (t.innerHTML = n ? e : s(e))
        },
        filterUrlByKey: function(e, t) {
            return t.forEach((function(t, n) {
                var i = new RegExp("[?&](" + t + "=([^&]*))","i")
                  , r = e.match(i);
                r && r.length > 2 && ("" == r[2] || "undefined" == r[2] || "0" == r[2]) && (e = e.replace(r[1], "").replace(/(\?|\&)\&/g, "$1"))
            }
            )),
            e
        },
        exencodeURIComponent: function(e) {
            var t = decodeURIComponent(e)
              , n = !1;
            try {
                JSON.parse(t);
                n = !0
            } catch (e) {
                n = !1
            }
            return n ? encodeURIComponent(t) : t != e ? e : encodeURIComponent(e)
        },
        getQuery: function(e) {
            var t = "" + ((e = (e = e || "").replace(/#.*$/, "")) || r.window.location.href)
              , n = t.indexOf("?");
            return a(t.substr(n + 1))
        },
        getHash: function(e) {
            var t = "" + (e || r.window.location.href)
              , n = t.indexOf("#");
            return -1 != n ? t.substr(n + 1) : ""
        },
        getDomainPath: function(e) {
            var t = "" + (e || r.window.location.href)
              , n = t.indexOf("?");
            return -1 != n ? t.substr(0, n) : t
        },
        template: o
    }
}
, function(e, t, n) {
    "use strict";
    var i = n(1);
    i.isCSR ? e.exports = {} : function(t) {
        var r;
        if (t.WXGAME && t.WXGAME.WxBridge)
            return r = t.WXGAME.WxBridge,
            void (e.exports = r);
        r = n(5),
        r = n(53);
        var o = n(0)
          , a = n(3)
          , s = n(17)
          , c = n(15)
          , l = n(9)
          , u = n(54)
          , d = n(55)
          , p = n(8);
        o.window.getUinKeyQueue = o.window.getUinKeyQueue || new c,
        o.window.getUinKeyQueue.setRelevant(),
        o.window.verifyJsapiQueue = o.window.verifyJsapiQueue || new c,
        o.window.verifyJsapiQueue.setSync();
        var f = a.getQueryStr
          , g = o.window.location;
        function m(e) {
            var t = this;
            r.getBridge((function(n) {
                e && e.call(t, n)
            }
            ))
        }
        var h, v = {
            firstLogin: {},
            buildLoginByObj: function(e) {
                var t = e.full_url || e.fullurl || e.url || ""
                  , n = f("uin", t, o.window)
                  , i = f("key", t, o.window)
                  , r = f("pass_ticket", t, o.window)
                  , a = f("abtest_cookie", t, o.window)
                  , s = f("access_token", t, o.window)
                  , c = f("openid", t, o.window);
                return {
                    uin: n,
                    key: i,
                    pass_ticket: r,
                    set_cookie: e.set_cookie,
                    abtest_cookie: a,
                    openid: c,
                    access_token: s
                }
            },
            runCookie: function(e, t, n) {
                var i = this
                  , r = function(r) {
                    var a = {
                        uin: "",
                        key: "",
                        pass_ticket: "",
                        set_cookie: "",
                        abtest_cookie: "",
                        openid: "",
                        from: r,
                        cookie_passkey: o
                    };
                    i.loginTrigger(e, a, t),
                    n && n(!0),
                    t.EndLogic({
                        err_msg: "runCookie_" + r
                    })
                };
                r.called = !1,
                window.__GAME_LOGIN_CALLBACK = function(e) {
                    t.EndLogic({
                        err_msg: "runCookie_wait_logincallback_success"
                    }),
                    r.called || (r("__GAME_LOGIN_CALLBACK"),
                    r.called = !0)
                }
                ;
                var o = d.cookie_get("cookie_passkey");
                "1" == o + "" ? r.called || (r("cookie"),
                r.called = !0) : t.EndLogic({
                    err_msg: "runCookie_wait_logincallback"
                })
            },
            canUseCookie: function() {
                var e = -1;
                return e = i.isAndroid ? i.hexVersionCompare(i.getHexClientVersion(), u.AndroidHexCookieVersion) : i.versionCompare(i.clientVersion(!0), u.iosCookieVersion),
                g.pathname.indexOf("litecenter/index.html") > -1 && (e = -1),
                isNaN(e) ? {
                    status: !1,
                    msg: "version illegal"
                } : i.isAndroid && !i.isLuggage ? {
                    status: !1,
                    msg: "luggage illegal"
                } : i.isiOS ? {
                    status: !1,
                    msg: "ios not support"
                } : e < 0 ? {
                    status: !1,
                    msg: "version lower"
                } : {
                    status: !0,
                    msg: "version ok"
                }
            },
            runWepkg: function(e, t, n) {
                var i = this;
                window.beforeBridgeReady = (new Date).getTime(),
                n.startJsbridgeReady = Date.now(),
                m((function(t) {
                    window.bridgeReadyTime3 = (new Date).getTime(),
                    window.beforeGetA8Key = (new Date).getTime(),
                    n.endJsbridgeReady = Date.now(),
                    l.logInfo("getUinKey", "start call wxBridge.getA8key"),
                    n.startGetA8KeyTime = Date.now(),
                    r.getA8key((function(t, o) {
                        n.endGetA8KeyTime = Date.now();
                        var a = i.buildLoginByObj(t);
                        a.from = o,
                        a.fullFilled = !0,
                        l.logInfo("getUinKey", "end call wxBridge.getA8key", a),
                        e && e.call(r, a)
                    }
                    ))
                }
                ))
            },
            loginTrigger: function(e, t, n) {
                n.endGetUinKeyTime = Date.now(),
                this.getUinKeyTimeReported || (this.getUinKeyTimeReported = !0,
                r.callAfterReady(function() {
                    n.EndLogic({
                        from: t.from || "default",
                        cost_time: n.endGetUinKeyTime - n.startGetUinKeyTime,
                        jsbridge_ready_time: (n.endJsbridgeReady || 0) - (n.startJsbridgeReady || 0),
                        a8key_time: (n.endGetA8KeyTime || 0) - (n.startGetA8KeyTime || 0),
                        err_msg: "check_time"
                    })
                }
                .bind(this))),
                l.logInfo("getUinKey", "last login", t);
                var o = !!(t && t.uin && t.key && t.pass_ticket)
                  , a = t.set_cookie + "" == "1" || t.cookie_passkey + "" == "1";
                i.isWepkg() && (o || a || r.callAfterReady((function() {
                    n.EndLogic({
                        err_msg: "getUinKey"
                    })
                }
                ))),
                !window.performance || !window.performance.timing.navigationStart || window.WxGamePerformanceParams && window.WxGamePerformanceParams.GetUinkeyTime || (window.WxGamePerformanceParams = window.WxGamePerformanceParams || {},
                window.WxGamePerformanceParams.GetUinkeyTime = (new Date).getTime() - window.performance.timing.navigationStart);
                try {
                    t.cost_time = n.endGetUinKeyTime - n.startGetUinKeyTime,
                    e && e.call(r, t)
                } catch (e) {
                    console.error("loginTrigger", e)
                }
            },
            urlFullLogin: function() {
                var e = this.buildLoginByObj({
                    full_url: null,
                    set_cookie: ""
                }, "url");
                return {
                    isFull: e.uin.length > 0 && e.key.length > 0 && e.pass_ticket.length > 0,
                    login: e
                }
            },
            getUinKey: function(e) {
                var t = this;
                if (!i.isWechat) {
                    var n = t.buildLoginByObj({});
                    if (n.access_token)
                        return void (e && e(n))
                }
                var a = window.WXGAME || {}
                  , s = (p = a.baseQualityReport || p).StartRunner("wxBridge.getUinKey", {}, null);
                s.startGetUinKeyTime = Date.now();
                var c = function(n) {
                    if (o.window.gotLogin) {
                        var a = o.window.gotLogin;
                        return a.from = "memcache",
                        void t.loginTrigger(e, a, s)
                    }
                    o.window.getUinKeyQueue.run({
                        fn: function() {
                            var e = this
                              , o = i.isWepkg();
                            if (o) {
                                var a = setTimeout((function() {
                                    l.logInfo("getUinKey", "runWepkgTimeout:", 15e3),
                                    r.callAfterReady((function() {
                                        s.EndLogic({
                                            err_msg: "runWepkgTimeout:15000"
                                        })
                                    }
                                    )),
                                    e.done({
                                        uin: "",
                                        key: "",
                                        pass_ticket: "",
                                        set_cookie: "",
                                        abtest_cookie: "",
                                        openid: "",
                                        access_token: "",
                                        fullFilled: !1
                                    })
                                }
                                ), 15e3);
                                t.runWepkg((function(t) {
                                    clearTimeout(a),
                                    e.done(t)
                                }
                                ), e, s)
                            } else {
                                var c = t.urlFullLogin();
                                if (c.isFull || i.isMSDK) {
                                    l.logInfo("getUinKey", "isWepkg:" + o, " login all in querystr，first get from url");
                                    var u = c.login;
                                    u.fullFilled = !0,
                                    u.from = "url",
                                    e.done(u)
                                } else {
                                    var d = function() {
                                        l.logInfo("getUinKey", "isWepkg:false", " login url is not full,try run cookie");
                                        var n = t.buildLoginByObj({
                                            full_url: null,
                                            set_cookie: ""
                                        }, "url");
                                        n.fullFilled = !0,
                                        n.wipeLogin = !0,
                                        n.from = "url",
                                        e.done(n)
                                    };
                                    if (n) {
                                        var p = setTimeout((function() {
                                            s.EndLogic({
                                                err_msg: "runCookie:1200"
                                            }),
                                            d()
                                        }
                                        ), 1200);
                                        t.runCookie(d, s, (function(e) {
                                            !0 === e && clearTimeout(p)
                                        }
                                        ))
                                    } else
                                        void 0 !== window.__INITIAL_STATE__ ? (s.EndLogic({
                                            err_msg: "runJsapiInJscore"
                                        }),
                                        t.runWepkg((function(t) {
                                            e.done(t)
                                        }
                                        ), e, s)) : d()
                                }
                            }
                        },
                        backFn: function(n) {
                            o.window.gotLogin = n,
                            t.loginTrigger(e, n, s)
                        }
                    })
                }
                  , u = this.canUseCookie();
                if (1 == u.status && i.isWepkg()) {
                    var d = setTimeout((function() {
                        s.EndLogic({
                            err_msg: "runCookie:1200"
                        }),
                        c(!0)
                    }
                    ), 1200);
                    this.runCookie(e, s, (function(e) {
                        !0 === e && clearTimeout(d)
                    }
                    ))
                } else
                    c(1 == u.status)
            }
        }, w = {
            _qrStr: "",
            _opt: {
                loaded: !1,
                isTestEnv: !1
            },
            _cbkQueue: [],
            callAfterLoaded: function(e) {
                "function" == typeof e && (this._opt.loaded ? e(this._opt) : this._cbkQueue.push(e))
            },
            consumeCbkQueue: function(e) {
                for (var t = 0, n = this._cbkQueue.length; t < n; t++) {
                    this._cbkQueue.shift()(e)
                }
            },
            initQryStr: function(e, t) {
                t.uin = e.uin,
                t.key = e.key,
                t.pass_ticket = e.pass_ticket,
                this._qrStr = ["uin=" + t.uin, "key=" + t.key, "pass_ticket=" + t.pass_ticket].join("&");
                var n = this._qrStr;
                t.loginStr = n,
                t.from = e.from,
                t.Referer = "Referer=" + encodeURIComponent(g.href.split("#")[0]),
                t.method = "GET",
                t.url = "/cgi-bin/comm/genfun?" + n + "&" + t.Referer + "&_=" + Math.random()
            },
            ajaxGenFun: function(e, t, n) {
                var i = this
                  , o = new s;
                i.initQryStr(e, o);
                var a = window.WXGAME || {}
                  , c = (p = a.baseQualityReport || p).StartLogic(p.LOGIC_CONST.TypeTextEnum.CGI, o.url, {}, null);
                window.ReportLuggage && window.NavigationStart && window.ReportLuggage.genfunBgn((new Date).getTime() - window.NavigationStart, (new Date).getTime(), window.NavigationStart),
                o.onComplete = function(e) {
                    if (window.ReportLuggage && window.NavigationStart && window.ReportLuggage.genfunEnd((new Date).getTime() - window.NavigationStart, (new Date).getTime(), window.NavigationStart),
                    -1 != e.responseText.indexOf("{")) {
                        0 == (a = JSON.parse(e.responseText)).ret ? (i._opt.sign = a.data.jsapi_sign,
                        i._opt.sign.loginStr = o.loginStr,
                        i._opt.sign.uin = o.uin,
                        i._opt.sign.key = o.key,
                        i._opt.sign.pass_ticket = o.pass_ticket,
                        i._opt.sign.from = o.from,
                        i._opt.loaded = !0,
                        i._opt.isTestEnv = !!a.data.is_test_env,
                        i.consumeCbkQueue(i._opt),
                        r.verifyCall(t, this._opt.sign, (function(e, t) {
                            try {
                                n && n(e, t)
                            } catch (e) {
                                console.error("Your wxBridge.ajaxGenFun callback runtime error ", e)
                            }
                        }
                        ))) : (c.EndLogic({
                            ret: a.ret,
                            res: a,
                            err_msg: "errcode_" + a.ret
                        }),
                        n && n(!1, {
                            err_code: 1,
                            loginStr: o.loginStr,
                            uin: o.uin,
                            key: o.key,
                            from: o.from,
                            pass_ticket: o.pass_ticket,
                            err_msg: "async signature load error"
                        }),
                        l.logError("ajaxGenFun", a, " call genfun fail for ret not 0"),
                        i.consumeCbkQueue())
                    } else {
                        var a = JSON.parse(e.responseText);
                        c.EndLogic({
                            ret: a.ret,
                            res: a,
                            err_msg: "errcode_not_json"
                        }),
                        n && n(!1, {
                            err_code: 2,
                            loginStr: o.loginStr,
                            uin: o.uin,
                            key: o.key,
                            from: o.from,
                            pass_ticket: o.pass_ticket,
                            err_msg: "genfun responseText illegal"
                        }),
                        i.consumeCbkQueue()
                    }
                    o = null
                }
                .bind(i),
                o.onError = function(e, t) {
                    c.EndLogic({
                        ret: t,
                        res: e,
                        err_msg: "errcode_onError_" + t
                    }),
                    n && n(!1, {
                        err_code: -1,
                        xhr: e,
                        loginStr: o.loginStr,
                        uin: o.uin,
                        key: o.key,
                        pass_ticket: o.pass_ticket,
                        err_msg: t
                    }),
                    o = null,
                    l.logError("ajaxGenFun", t, " call genfun fail for timeout"),
                    i.consumeCbkQueue()
                }
                .bind(i),
                o.send(o.Referer ? o.Referer : null)
            },
            checkIsPreVerified: function(e, t) {
                var n = !0;
                e = e || {};
                for (var i = 0, r = t.length; i < r; i++)
                    if (!e[t[i]])
                        return n = !1;
                return n
            },
            verifyJsapi: function(e, t) {
                var n = this;
                if (i.isWechat) {
                    var a = window.WXGAME || {}
                      , s = (p = a.baseQualityReport || p).StartRunner("wxBridge.verifyJsapi", {}, null);
                    o.window.verifyJsapiQueue.run((function(i) {
                        var a = this;
                        if (n.checkIsPreVerified(o.window.verifyJsapiQueue.verifiedMap, e))
                            try {
                                var c = o.window.verifyJsapiQueue.verifiedMap.res;
                                c.from = "allVerified",
                                s.EndLogic({
                                    err_msg: c.from
                                }),
                                a.done(i),
                                t && t(!0, c)
                            } catch (e) {
                                var l = "verifyJsapi callback runtime error";
                                console.error(l, e),
                                s.EndLogic({
                                    err_msg: l
                                }),
                                a.done(i)
                            }
                        else
                            v.getUinKey(function(i) {
                                n.ajaxGenFun(i, e, function(n, i) {
                                    n || s.EndLogic({
                                        err_msg: {
                                            code: n,
                                            res: i
                                        }
                                    });
                                    var c = o.window.verifyJsapiQueue.verifiedMap || {};
                                    if (!0 === n)
                                        for (var l = 0, u = e.length; l < u; l++)
                                            c[e[l]] = !0;
                                    c.res = i,
                                    o.window.verifyJsapiQueue.verifiedMap = c,
                                    a.done(c),
                                    s.EndLogic({
                                        err_msg: "wxBridge.verifyJsapi ends"
                                    });
                                    try {
                                        t && t.call(r, n, i)
                                    } catch (e) {
                                        var d = "getUinKey genFun wxBridge.verifyJsapi callback runtime error ";
                                        console.error(d, e),
                                        s.EndLogic({
                                            err_msg: d
                                        })
                                    }
                                }
                                .bind(n))
                            }
                            .bind(n))
                    }
                    ))
                } else
                    t && t(!0, {
                        err_msg: "preverifyJSAPI:ok"
                    })
            }
        };
        r.getUinKey = v.getUinKey.bind(v),
        r.callAfterReady = m,
        r.verifyJsapi = w.verifyJsapi.bind(w),
        r.VerifyJsapiModule = w,
        h = t.WXGAME && t.WXGAME.WxBridge ? t.WXGAME.WxBridge : r,
        e.exports = h
    }(window)
}
, function(e, t, n) {
    "use strict";
    var i = n(15)
      , r = n(9)
      , o = n(1)
      , a = n(0)
      , s = a.window
      , c = {
        TypeEnum: {
            CGI: 0,
            LOGIC: 1,
            CSS: 2,
            JS: 3,
            IMAGE: 4,
            JSAPI: 5,
            COMMLIB: 6,
            BADJS: 7,
            CACHEKEY: 8,
            FEATURE_DETECT: 9
        },
        TypeTextEnum: {
            CGI: "CGI",
            LOGIC: "LOGIC",
            CSS: "CSS",
            JS: "JS",
            IMAGE: "IMAGE",
            JSAPI: "JSAPI",
            COMMLIB: "COMMLIB",
            BADJS: "BADJS",
            CACHEKEY: "CACHEKEY",
            FEATURE_DETECT: "FEATURE_DETECT"
        }
    }
      , l = function(e) {
        return Object.prototype.toString.call(e).replace(/\]/g, "").split(" ")[1]
    };
    var u = function() {
        var e = new i;
        e.setSync();
        var t = !1;
        return function(n, i) {
            i && e.run((function() {
                var e = this;
                if (!0 === t)
                    setTimeout((function() {
                        e.done()
                    }
                    ), 0);
                else {
                    if (!i.verifyJsapi)
                        return void e.done();
                    i.verifyJsapi(i.apis, (function(n, i) {
                        !0 === n ? (t = !0,
                        e.done()) : (r.logError("EndLogic", "get jsapi reportGameWeb failed"),
                        e.done())
                    }
                    ))
                }
            }
            )),
            e.run((function() {
                var e = this
                  , t = o.clientVersion(!0);
                if (o.versionCompare(t, "7.0.0") < 0)
                    e.done();
                else {
                    var i = function() {
                        o.canIReport() ? s.WeixinJSBridge.invoke("reportGameWeb", {
                            type: "2",
                            isReportNow: "1",
                            data: n
                        }, (function(t) {
                            e.done();
                            var i = !1;
                            o.isiOS && (i = "0" != t.result),
                            o.isAndroid && (i = -1 == t.err_msg.indexOf(":ok")),
                            i && r.logError("EndLogic", "jsapi reportGameWeb call fail", t, n)
                        }
                        )) : e.done()
                    };
                    s.WeixinJSBridge ? i() : window.document.addEventListener("WeixinJSBridgeReady", (function() {
                        i()
                    }
                    ))
                }
            }
            ))
        }
    }()
      , d = function() {
        var e = function() {
            this.queue = [],
            this.lastReportTime = 0,
            this.timer = null
        };
        e.prototype.push = function(e) {
            this.queue.push(e),
            this.timer || (this.timer = setTimeout(function() {
                this.lastReportTime = Date.now(),
                this.trigger && this.trigger(this.queue),
                this.queue.length = 0,
                clearTimeout(this.timer),
                this.timer = null
            }
            .bind(this), 1e3)),
            this.queue.length >= 5 && (this.lastReportTime = Date.now(),
            this.trigger && this.trigger(this.queue),
            this.queue.length = 0)
        }
        ;
        var t = new e;
        t.trigger = function() {
            a.report16145 && a.report16145(this.queue)
        }
        ;
        var i = function(e, t, n) {
            var i = {
                Type: e[30],
                Target: e[31],
                Params: e[32],
                Result: e[33],
                CostTime: e[34]
            };
            n.push(i)
        };
        return function(e) {
            if (a.report16145Loaded)
                a.report16145 && i(e, a.report16145, t);
            else {
                a.report16145Loaded = !0;
                var r = n(28);
                a.report16145 = r,
                i(e, 0, t)
            }
        }
    }();
    function p(e, t, i, r) {
        var a = (new Date).getTime();
        if (null != e && !(e in c.TypeEnum))
            throw "Illegal StartLogic Params: type, see LOGIC_CONST.js";
        if (null != t && "String" != l(t))
            throw "Illegal StartLogic Params: target,need string";
        if (null != i && !function(e) {
            return "Object" == l(e)
        }(i))
            throw "Illegal StartLogic Params: params,need a json";
        return {
            EndLogic: function(r) {
                var s = (new Date).getTime();
                r = function(e) {
                    (e = e || {}).webview = {};
                    var t = "X5"
                      , n = "XWEB"
                      , i = "WKWEB"
                      , r = "UIWEB"
                      , a = "ANDROIDUNKNOW";
                    return o.isiOS ? o.isWKweb ? e.webview.kernal = i : e.webview.kernal = r : o.isAndroid && (o.isX5 ? e.webview.kernal = t : o.isXweb ? e.webview.kernal = n : e.webview.kernal = a),
                    e
                }(r);
                var l = {
                    Type: c.TypeEnum[e],
                    Target: encodeURIComponent(t + "").substr(0, 1024),
                    Params: encodeURIComponent(JSON.stringify(i)).substr(0, 1024),
                    Result: encodeURIComponent(JSON.stringify(r)).substr(0, 1024),
                    CostTime: s - a
                };
                if (e === c.TypeTextEnum.JSAPI && n(31).isOK(t, r))
                    return;
                var p = "";
                try {
                    p = window.location.href.replace(location.search, "").replace(location.hash, "")
                } catch (e) {}
                (o.isWechat || o.isPcWechat ? u : d).call(this, {
                    30: l.Type,
                    31: l.Target,
                    32: l.Params,
                    33: l.Result,
                    34: l.CostTime,
                    35: encodeURIComponent(p)
                }, void 0)
            }
        }
    }
    e.exports = {
        StartRunner: function(e, t, n) {
            return p(c.TypeTextEnum.LOGIC, e, t)
        },
        StartLogic: p,
        LOGIC_CONST: c
    }
}
, function(e, t, n) {
    "use strict";
    (function(e) {
        var t, i, r, o = n(2)(n(4)), a = "undefined" != typeof __VUE_SSR_CONTEXT__;
        if (!a) {
            t = function() {
                var e = {};
                try {
                    top && top.window && top.window.document && (e = top.window)
                } catch (t) {
                    e = window
                }
                return e
            }(),
            r = function(e, t, n, i) {
                e.invoke("log", {
                    msg: ["[WXGameH5Log]", "[" + {
                        1: "info",
                        2: "warn",
                        3: "error"
                    }[n] + "]", "[" + t + "]", "\n", i, "\n"].join("")
                })
            }
            ,
            i = function(e, n, i) {
                var o = window.location.pathname.split(".html");
                (o = o[0].split("/").slice(-2)).push(e);
                var a = o.join("_")
                  , s = t.window;
                s.WeixinJSBridge ? r(s.WeixinJSBridge, a, n, i) : document.addEventListener("WeixinJSBridgeReady", (function() {
                    r(s.WeixinJSBridge, a, n, i)
                }
                ))
            }
        }
        var s = function(e) {
            return (e = e || []).map((function(e) {
                if ("object" == (0,
                o.default)(e))
                    try {
                        e = JSON.stringify(e)
                    } catch (t) {
                        e = e
                    }
                return "string" != typeof e && (e = "" + e),
                e
            }
            ))
        }
          , c = {
            logInfo: function(e) {
                if (!a)
                    try {
                        var t = Array.prototype.slice.apply(arguments);
                        t = s(t),
                        i(e, 1, t.slice(1).join(" "))
                    } catch (e) {
                        console.error(e.message)
                    }
            },
            logWarn: function(e) {
                if (!a)
                    try {
                        var t = Array.prototype.slice.apply(arguments);
                        t = s(t),
                        i(e, 2, t.slice(1).join(" "))
                    } catch (e) {
                        console.error(e.message)
                    }
            },
            logError: function(e) {
                if (!a)
                    try {
                        var t = Array.prototype.slice.apply(arguments);
                        t = s(t),
                        i(e, 3, t.slice(1).join(" "))
                    } catch (e) {
                        console.error(e.message)
                    }
            }
        };
        (e = e || {}).exports = c
    }
    ).call(this, n(14)(e))
}
, function(e, t, n) {
    "use strict";
    var i = n(2)(n(4))
      , r = n(1)
      , o = n(17)
      , a = n(6)
      , s = n(0)
      , c = n(3)
      , l = (n(41),
    n(7))
      , u = n(8)
      , d = c.getQueryStr
      , p = n(9)
      , f = n(22);
    function g(e, t, n) {
        var g = this
          , m = e.cgi
          , h = e.params
          , v = e.login
          , w = e.tparam;
        w.method = w.method || "GET";
        var _ = w.timeout || 3e4
          , y = w.method
          , b = w.contentType
          , x = {
            uin: v.uin,
            key: v.key
        }
          , k = {
            pass_ticket: v.pass_ticket
        }
          , S = d("abtest_cookie", null, s.window)
          , I = d("abt", null, s.window);
        if (w.abtest_cookie = w.abtest_cookie || S,
        w.abt = w.abt || I,
        "string" == typeof h)
            try {
                var A = JSON.parse(h);
                window.__KULP_BUILD_VERSION__ && (A.build_version = window.__KULP_BUILD_VERSION__),
                h = JSON.stringify(A)
            } catch (e) {}
        window.__KULP_BUILD_VERSION__ && (w.build_version = __KULP_BUILD_VERSION__);
        var C, T = {};
        if (v.openid && (T.openid = v.openid),
        v.access_token && (T.access_token = v.access_token),
        r.isMSDK && (C = f.getInGameLoginByType()),
        "get" === y.toLowerCase())
            k.pass_ticket && !d("pass_ticket", m) && (w = c.extend(w, k)),
            x.uin && !d("uin", m) && (w = c.extend(w, x)),
            T.access_token && !d("access_token", m) && (w = c.extend(w, T)),
            m = m + (-1 == m.indexOf("?") ? "?" : "&") + a.mapToStr(w) + (C ? "&" + C : "");
        else {
            var E = {};
            E.abtest_cookie = w.abtest_cookie,
            E.abt = w.abt,
            E.build_version = w.build_version || 0,
            w.cgi_mock_key && (E.cgi_mock_key = w.cgi_mock_key),
            k.pass_ticket && !d("pass_ticket", m) && (E = c.extend(E, k)),
            x.uin && !d("uin", m) && (E = c.extend(E, x)),
            T.access_token && !d("access_token", m) && (E = c.extend(E, T)),
            m = m + (-1 == m.indexOf("?") ? "?" : "&") + a.mapToStr(E) + (C ? "&" + C : "")
        }
        var O = window.WXGAME || {}
          , L = (u = O.baseQualityReport || u).StartLogic(u.LOGIC_CONST.TypeTextEnum.CGI, m, w, l)
          , D = new o(m,y,_);
        (new Date).getTime();
        return D.onComplete = function(e) {
            var n = {}
              , i = (e.responseText || "").replace(/[\u0000-\u001f\u000B\u000C\u00A0\uFEFF\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u202E\u202D]/g, "");
            try {
                n = JSON.parse(i)
            } catch (e) {
                try {
                    n = new Function("return " + i)()
                } catch (e) {
                    n = {}
                }
            }
            setTimeout((function() {
                p.logInfo("xhrCallCgi", "onComplete", m, n)
            }
            ), 0),
            t && t.call(g, n);
            var r;
            (new Date).getTime();
            if (0 != 1 * (r = "ret"in n ? n.ret : n.base && "ret"in n.base ? n.base.ret : "errcode"in n ? n.errcode : 9999)) {
                var o = e.getResponseHeader("X-WXGAME-ERRLEVEL");
                (!o || Number(o) > 3) && L.EndLogic({
                    errcode: r
                })
            }
            var a = {
                pa: e.timeArr[1] - e.timeArr[0],
                pb: e.timeArr[2] - e.timeArr[1],
                pc: e.timeArr[3] - e.timeArr[2],
                pd: e.timeArr[4] - e.timeArr[3],
                status: "ok"
            };
            L.EndLogic({
                time_list: JSON.stringify(a)
            });
            try {
                n && n.report_info && n.report_info.exp_rpt_list && n.report_info.exp_rpt_list.length > 0 && (window._expRptList_ = (window._expRptList_ || []).concat(n.report_info.exp_rpt_list))
            } catch (e) {}
        }
        ,
        D.onError = function(e, t) {
            L.EndLogic({
                errcode: t
            }),
            "ok" != t && n && n.call(g, t);
            var i = {};
            try {
                i = new Function("return " + e.responseText)() || {}
            } catch (t) {
                i = {
                    responseText: e.responseText
                }
            }
            p.logError("xhrCallCgi", "onError", e, i, t);
            (new Date).getTime();
            try {
                isNaN(i.errcode) ? isNaN(i.ret) ? 999999 : i.ret : i.errcode
            } catch (e) {
                404
            }
            "ret"in i ? i.ret = i.ret : i.base && "ret"in i.base ? i.ret = i.base.ret : i.ret = "errcode"in i ? i.errcode : 0;
            var r = {
                pa: e.timeArr[1] - e.timeArr[0],
                pb: e.timeArr[2] - e.timeArr[1],
                pc: e.timeArr[3] - e.timeArr[2],
                pd: e.timeArr[4] - e.timeArr[3],
                status: "fail"
            };
            L.EndLogic({
                time_list: JSON.stringify(r)
            })
        }
        ,
        "multipart/form-data" === b && "object" === (0,
        i.default)(h) ? (p.logInfo("xhrCallCgi", m, h, _),
        D.send(h, {
            contentType: b
        })) : "string" == typeof h ? (p.logInfo("xhrCallCgi", m, h, _),
        D.send(h)) : (p.logInfo("xhrCallCgi", m, h, _),
        D.send(a.mapToStr(w))),
        D
    }
    if (r.isCSR)
        e.exports = function(e, t, n, i) {
            if ("string" == typeof t)
                try {
                    t = JSON.parse(t)
                } catch (e) {
                    t = a.strToMap(t)
                }
            var o = {
                method: t.method.toUpperCase(),
                url: e
            };
            if ("POST" === o.method.toUpperCase())
                o.body = t,
                o.json = !0;
            else {
                var s = "";
                for (var c in t)
                    s += "".concat(c, "=").concat(encodeURIComponent(t[c]), "&");
                o.url = o.url + (o.url.indexOf("?") > -1 ? s : "?".concat(s)),
                o.json = !0
            }
            r.getCSR().request(o, (function(e) {
                n && n(e)
            }
            ), (function(e) {
                i && i(e)
            }
            ))
        }
        ;
    else {
        var m = window;
        m.WXGAME && m.WXGAME.xhrCallCgi && !r.isMSDK ? e.exports = m.WXGAME.xhrCallCgi : e.exports = function(e, t, n, i) {
            var r = this
              , o = t || {};
            if ("string" == typeof o)
                try {
                    o = JSON.parse(o)
                } catch (e) {
                    o = a.strToMap(o)
                }
            var c = d("cgi_mock_key", null, s.window);
            c && (o.cgi_mock_key = c),
            o.needLogin = null == o.needLogin || o.needLogin;
            var u = {
                cgi: e,
                params: t,
                login: {},
                tparam: o
            };
            o.needLogin ? l.getUinKey((function(e) {
                u.login = e,
                g.call(r, u, n, i)
            }
            )) : (u.login = {},
            g.call(r, u, n, i))
        }
    }
}
, function(e, t, n) {
    "use strict";
    var i = n(1);
    i.isCSR || function(t) {
        var r = n(0)
          , o = r.window
          , a = n(6)
          , s = n(20)
          , c = n(3)
          , l = n(12)
          , u = c.getQueryStr
          , d = s.base64decode
          , p = l.getKeyValue
          , f = n(21)
          , g = {}
          , m = {}
          , h = r.window.navigator.userAgent;
        function v(e) {
            -1 !== e.indexOf("?") ? e += "&QB&" : e += "?&QB&";
            try {
                var t = a.getQuery(e);
                window.logWarn && logWarn("report_base", "reportData:", t)
            } catch (e) {}
            new Image(1,1).src = e
        }
        g.isiOS = i.isiOS,
        g.isAndroid = i.isAndroid,
        g.isWechat = i.isWechat,
        g.isiOS9 = i.isiOS9,
        g.isPcWechat = i.isPcWechat,
        function(n) {
            if (g.isWechat) {
                var r = n.split("MicroMessenger/")[1];
                m.networktype = i.getNetworkType(r),
                m.clientversion = i.clientVersion(),
                m.device = g.isAndroid ? "android" : g.isiOS ? "iphone" : "0"
            }
            var a = u("from", null, o)
              , s = {
                singlemessage: 1,
                groupmessage: 2,
                timeline: 4,
                message: 10
            };
            a && a in s && (m.sourcescene = s[a],
            s = null);
            var c = u("noticeid") || u("noticeid", null, o);
            c && c.length > 1 ? m.noticeid = c : m.noticeid = t.noticeid || t.nNoticeID || t.nNoticeId || 66043145;
            var l = u("actid") || u("actid", null, o) || u("act_id") || u("act_id", null, o) || t.actid || t.iActID || t.iActId || 0;
            l && (m.actid = l);
            var h = d(decodeURIComponent(u("uin", null, o))) || p("uin") || 0;
            h && (m.uin = h),
            g.reportObj = m,
            g.imgReport = v;
            var w = f(g, !0);
            e.exports = w
        }(h)
    }(window)
}
, function(e, t, n) {
    "use strict";
    e.exports = {
        setKeyValue: function(e, t) {
            try {
                localStorage.setItem(e, t)
            } catch (n) {
                -1 != n.toString().indexOf("QuotaExceeded") && (localStorage.clear(),
                localStorage.setItem(e, t))
            }
        },
        getKeyValue: function(e) {
            return localStorage.getItem(e)
        },
        delKeyValue: function(e) {
            localStorage.removeItem(e)
        }
    }
}
, function(e, t, n) {
    "use strict";
    var i, r = n(2)(n(4));
    i = function() {
        return this
    }();
    try {
        i = i || new Function("return this")()
    } catch (e) {
        "object" === ("undefined" == typeof window ? "undefined" : (0,
        r.default)(window)) && (i = window)
    }
    e.exports = i
}
, function(e, t, n) {
    "use strict";
    e.exports = function(e) {
        return e.webpackPolyfill || (e.deprecate = function() {}
        ,
        e.paths = [],
        e.children || (e.children = []),
        Object.defineProperty(e, "loaded", {
            enumerable: !0,
            get: function() {
                return e.l
            }
        }),
        Object.defineProperty(e, "id", {
            enumerable: !0,
            get: function() {
                return e.i
            }
        }),
        e.webpackPolyfill = 1),
        e
    }
}
, function(e, t, n) {
    "use strict";
    var i = "Sync"
      , r = "Parallel"
      , o = "Relevant"
      , a = function() {
        this.queueArr = [],
        this.QueueType = "",
        this.onceStarted = !1
    };
    a.prototype.setSync = function() {
        this.QueueType = i,
        this.onceStarted = !1,
        this.done = function(e) {
            var t = this.queueArr.shift();
            this.queueArr.length <= 0 && (this.onceStarted = !1),
            "function" == typeof t && t.call(this, e)
        }
        .bind(this)
    }
    ;
    a.prototype.setParallel = function() {
        this.QueueType = r,
        this.done = function(e) {}
        .bind(this)
    }
    ;
    a.prototype.setRelevant = function() {
        this.QueueType = o,
        this.onceStarted = !1,
        this.done = function(e) {
            this.queueArr.length > 0 && (this.queueArr[0].backFn.call(this, e),
            this.queueArr.shift());
            for (var t = null; t = this.queueArr.shift(); )
                "function" == typeof t.backFn && t.backFn.call(this, e);
            this.onceStarted = !1
        }
        .bind(this)
    }
    ;
    a.prototype.run = function(e) {
        switch (this.QueueType) {
        case i:
            !function(e, t) {
                if ("function" == typeof t && (e.queueArr.push(t),
                !1 === e.onceStarted)) {
                    var n = e.queueArr.shift();
                    if ("function" != typeof n)
                        throw "fatal error for no function in queue";
                    e.onceStarted = !0,
                    n.call(e)
                }
            }(this, e);
            break;
        case r:
            !function(e, t) {
                if ("function" != typeof t)
                    throw "faltal error for no function in queue";
                t.call(e)
            }(this, e);
            break;
        case o:
            !function(e, t) {
                if (e.queueArr.push(t),
                !1 === e.onceStarted) {
                    var n = e.queueArr[0];
                    n && "function" == typeof n.fn ? (e.onceStarted = !0,
                    setTimeout((function() {
                        n.fn.call(e)
                    }
                    ), 0)) : console.error("_runRelevant:", n, " is illegal")
                }
            }(this, e)
        }
    }
    ,
    e.exports = a
}
, function(e, t, n) {
    "use strict";
    e.exports = /<%=([\s\S]+?)%>/g
}
, function(e, t, n) {
    "use strict";
    var i = n(2)(n(4));
    function r(e, t, n, o) {
        var a, s = this, c = o;
        function l(e) {
            return !!a && (clearTimeout(a),
            a = null,
            "ok" != e && function(e) {
                s.onError(c, e)
            }(e),
            !0)
        }
        if (e && (-1 !== e.indexOf("?") ? e += "&QB&" : e += "?&QB&"),
        this.method = t || "POST",
        this.url = e,
        this.async = !0,
        this.content = "",
        this.timeout = n,
        this.timeArr = [],
        this.status = 0,
        this.onComplete = function() {}
        ,
        this.onError = function() {}
        ,
        c || (c = r.newXhr()),
        !c)
            return !1;
        c.timeArr = [],
        c.timeArr.push(Math.floor((new Date).getTime())),
        this.headers = {},
        this.abort = function() {
            l("abort"),
            c.abort()
        }
        ,
        this.abortCustom = function() {
            l("abortCustom"),
            c.abort()
        }
        ,
        this.send = function(e, t) {
            if (t = t || {},
            !this.method || !this.url || !this.async)
                return !1;
            "object" == (0,
            i.default)(this.url) && (this.url = this.url.replace({}));
            var n, r = this.method.toUpperCase();
            this.abort(),
            c.open(r, this.url, this.async),
            c.timeArr.push(Math.floor((new Date).getTime())),
            "POST" == r && ("multipart/form-data" === t.contentType || (!function(e) {
                var t = !1;
                try {
                    var n = JSON.parse(e);
                    t = !!n
                } catch (e) {
                    t = !1
                }
                return t
            }(e) ? c.setRequestHeader("Content-Type", "application/x-www-form-urlencoded") : c.setRequestHeader("Content-Type", "application/json; charset=utf-8"))),
            function(e, t, n, i) {
                if (!e)
                    return;
                if (null != e.length) {
                    var r, o = e.length;
                    r = i < 0 ? o + i : i < o ? i : o;
                    for (var a = n || 0; a < r; a++)
                        try {
                            if (!1 === t(e[a], a, o))
                                break
                        } catch (e) {}
                } else
                    for (var a in e)
                        try {
                            if (!1 === t(e[a], a))
                                break
                        } catch (e) {}
            }(this.headers, (function(e, t) {
                c.setRequestHeader(t, e)
            }
            )),
            c.ontimeout = this.onTimeout || function() {}
            ,
            c.timeout = this.timeout || 15e3,
            c.onreadystatechange = function() {
                c.timeArr.push(Math.floor((new Date).getTime())),
                4 === c.readyState && (200 === c.status ? l("ok") && s.onComplete(c) : l([c.statusText, c.status, c.timeout].join("_")))
            }
            ,
            n = (this.timeout || 15e3) + 1e3,
            a || (a = setTimeout((function() {
                s.abort()
            }
            ), n));
            try {
                if ("POST" == r) {
                    var o = "";
                    if ("multipart/form-data" === t.contentType)
                        for (var u in o = new FormData,
                        e)
                            o.append(u, e[u]);
                    else
                        o = [e || this.content, ""].join("");
                    c.send(o)
                } else
                    c.send(null)
            } catch (e) {
                l(e.message)
            }
            return !0
        }
    }
    r.newXhr = function(e) {
        var t = e || window
          , n = function() {};
        if (t.ActiveXObject)
            try {
                return new t.ActiveXObject("MSXML2.XMLHTTP")
            } catch (e) {
                try {
                    return new t.ActiveXObject("Microsoft.XMLHTTP")
                } catch (e) {
                    return {
                        send: n,
                        open: n,
                        setRequestHeader: n,
                        abort: n
                    }
                }
            }
        return t.XMLHttpRequest ? new t.XMLHttpRequest : {
            send: n,
            open: n,
            setRequestHeader: n,
            abort: n
        }
    }
    ,
    e.exports = r
}
, function(e, t, n) {
    "use strict";
    if (!n(1).isCSR) {
        var i = null
          , r = n(0)
          , o = n(8)
          , a = r.window.WXGAME || {};
        o = a.baseQualityReport || o,
        e.exports = {
            StartLogic: function(e, t, n) {
                return o.StartLogic(e, t, n, i)
            },
            StartRuner: function(e, t) {
                var n = o.LOGIC_CONST.TypeTextEnum.LOGIC;
                return o.StartLogic(n, e, t, i)
            },
            LOGIC_CONST: o.LOGIC_CONST
        }
    }
}
, function(e, t, n) {
    "use strict";
    var i = n(2)(n(4))
      , r = n(1);
    if (!r.isCSR) {
        var o = n(11)
          , a = n(3)
          , s = n(6)
          , c = n(12)
          , l = n(7)
          , u = n(33)
          , d = n(45)
          , p = a.getQueryStr
          , f = (c.getKeyValue,
        n(22))
          , g = n(0).window;
        !function(t, n, o) {
            var c = t.reportObj;
            function m(e) {
                var t = p("rpt_ssid_str") || ""
                  , n = e.sExternInfo;
                try {
                    if (!t)
                        return e;
                    if (n)
                        if ("string" == typeof n) {
                            var r = JSON.parse(n);
                            r = a.extend({
                                rpt_ssid_str: t
                            }, r),
                            n = JSON.stringify(r)
                        } else
                            "object" === (0,
                            i.default)(n) && (n = JSON.stringify(a.extend({
                                rpt_ssid_str: t
                            }, n)));
                    else
                        n = JSON.stringify({
                            rpt_ssid_str: t
                        });
                    return e.sExternInfo = n,
                    e
                } catch (t) {
                    return e
                }
            }
            e.exports = function(e, t, n) {
                var i = new XMLHttpRequest
                  , o = [];
                i.onreadystatechange = function() {}
                ;
                for (var a = 0, h = e.length; a < h; a++) {
                    var v = e[a]
                      , w = "";
                    w += "&ActID=" + ((v = m(v)).iActID || c.actid || 0),
                    w += "&LogType=" + (v.iLogType || c.iLogType || p("abt", null, g) || 0),
                    w += "&SceneID=" + (v.iSceneId || 0),
                    w += "&GameID=" + (v.sGameId || ""),
                    w += "&SourceID=" + (v.iSourceSceneId || p("ssid", null, g) || 0),
                    w += "&UIArea=" + (v.iUIArea || 0),
                    w += "&PositionID=" + (v.iPositionId || 0),
                    w += "&ActionID=" + (v.iActionId || 0),
                    w += "&ActionStatus=" + (v.sActionStatus || 0),
                    w += "&GiftID=" + (v.iGiftBagId || 0),
                    w += "&GiftType=" + (v.iGiftBagType || 0),
                    w += "&ConnectType=" + (v.sConnectType || c.networktype || ""),
                    w += "&ISP=" + (v.sServiceProvider || ""),
                    w += "&DeviceBrand=" + (v.sDeviceBrand || ""),
                    w += "&DeviceModel=" + (v.sDeviceModel || ""),
                    w += "&OpType=" + (v.iOpType || 0);
                    var _ = d(v);
                    w += "&ExpID=" + (v.iExpID || _.exp_id || 0),
                    w += "&ReasonID=" + (v.iReasonID || _.reason_id || 0),
                    w += "&allpath=" + (p("rpt_allpath") || ""),
                    w += "&ExternInfo=" + s.exencodeURIComponent(v.sExternInfo || c.sExternInfo || ""),
                    w += "&getType=" + (r.isWepkg() ? 1 : 2),
                    w += "&URL=" + encodeURIComponent(location.href.split("#")[0].replace(/&(uin|pass_ticket|key)=[^&]+/g, "").replace(/\?(uin|pass_ticket|key)=[^&]+/g, "?")),
                    w += "&errType=" + u(v),
                    v.iContentType && (w += "&ContentType=" + (v.iContentType || 0)),
                    v.iTime && (w += "&Time=" + (v.iTime || 0)),
                    v.sVideoID && (w += "&VideoID=" + (v.sVideoID || "")),
                    v.iReasonID && (w += "&ReasonID=" + (v.iReasonID || 0)),
                    window.__KULP_BUILD_VERSION__ && (w += "&BuildVersion=" + (window.__KULP_BUILD_VERSION__ || "")),
                    o.push(w)
                }
                var y, b = o.length > 1 ? "POST" : "GET", x = {};
                if (t = t || "",
                r.isMSDK) {
                    y = "//game.weixin.qq.com/cgi-bin/groupwap/reportstat?",
                    y += f.getInGameLoginByType();
                    for (a = 0,
                    h = o.length; a < h; a++) {
                        var k = new XMLHttpRequest;
                        k.open("GET", y + o[a], !0),
                        k.send(null)
                    }
                } else
                    l.getUinKey((function(e) {
                        var n = {
                            uin: e.uin,
                            key: e.key,
                            pass_ticket: e.pass_ticket
                        }
                          , r = "/cgi-bin/comm/cltstat?" + (t || "") + (x == {} ? "" : "&" + s.mapToStr(n)) + (o.length > 1 ? "" : "&" + o[0]) + "&QB&";
                        i.open(b, r, !0),
                        o.length > 1 && i.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"),
                        i.send(o.length > 1 ? "BatchData=" + encodeURIComponent(JSON.stringify(o)) : null)
                    }
                    ))
            }
        }(o, window, document)
    }
}
, function(e, t, n) {
    "use strict";
    var i = [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, -1, -1, -1, 63, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -1, -1, -1, -1, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1, -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1, -1, -1];
    e.exports = {
        base64decode: function(e) {
            var t, n, r, o, a, s, c;
            for (s = e.length,
            a = 0,
            c = ""; a < s; ) {
                do {
                    t = i[255 & e.charCodeAt(a++)]
                } while (a < s && -1 == t);if (-1 == t)
                    break;
                do {
                    n = i[255 & e.charCodeAt(a++)]
                } while (a < s && -1 == n);if (-1 == n)
                    break;
                c += String.fromCharCode(t << 2 | (48 & n) >> 4);
                do {
                    if (61 == (r = 255 & e.charCodeAt(a++)))
                        return c;
                    r = i[r]
                } while (a < s && -1 == r);if (-1 == r)
                    break;
                c += String.fromCharCode((15 & n) << 4 | (60 & r) >> 2);
                do {
                    if (61 == (o = 255 & e.charCodeAt(a++)))
                        return c;
                    o = i[o]
                } while (a < s && -1 == o);if (-1 == o)
                    break;
                c += String.fromCharCode((3 & r) << 6 | o)
            }
            return c
        }
    }
}
, function(e, t, n) {
    "use strict";
    var i = n(2)(n(4))
      , r = {}
      , o = "Array Object String Date RegExp Function Boolean Number Null Undefined".split(" ");
    function a() {
        return Object.prototype.toString.call(this).slice(8, -1)
    }
    for (var s = o.length; s--; )
        r["is" + o[s]] = function(e) {
            return function(t) {
                return a.call(t) === e
            }
        }(o[s]);
    e.exports = function e(t, n) {
        if (r.isFunction(t))
            return new Function("return " + t.toString())();
        if (null === t || "object" !== (0,
        i.default)(t))
            return t;
        var o, a, s = r.isArray(t) ? [] : {};
        for (o in t)
            (a = t[o]) !== t && (n ? r.isArray(a) || r.isObject(a) ? s[o] = e(a, n) : r.isFunction(a) ? s[o] = new Function("return " + a.toString())() : s[o] = a : s[o] = a);
        return s
    }
}
, function(e, t, n) {
    "use strict";
    var i = n(2)(n(4))
      , r = n(1)
      , o = n(17)
      , a = (n(41),
    n(23))
      , s = n(0);
    function c(e, t, n) {
        try {
            t = t || (n ? s.window.location.search : location.search)
        } catch (e) {
            t = t || location.search
        }
        if (t.indexOf("wechat_pkgid=") > -1 && ("uin" === e || "key" === e || "pass_ticket" === e))
            return window.wepkgLoginInfo && window.wepkgLoginInfo[e] ? window.wepkgLoginInfo[e] : "";
        var i = t.match(new RegExp("[?&]" + e + "=([^&]+)","i"));
        return null == i || i.length <= 1 ? "" : i[1]
    }
    function l() {
        return "uin=" + c("uin", "", 1) + "&key=" + c("key", "", 1) + "&pass_ticket=" + c("pass_ticket", "", 1)
    }
    function u() {
        return d({
            auth_type: 2,
            m_sig: c("sig") || "",
            m_timestamp: c("timestamp") || "",
            m_algorithm: c("algorithm") || "",
            m_version: c("version") || "",
            m_encode: c("encode") || "",
            appid: c("appid") || c("gamekey") || "",
            m_param: c("msdkEncodeParam") || ""
        })
    }
    function d(e, t, n) {
        try {
            t = t || "&",
            n = n || "=";
            var i = [];
            for (var r in e)
                i.push(r + n + e[r]);
            return i.join(t)
        } catch (e) {
            alert(e.message)
        }
    }
    var p = function(e, t) {
        var n, i = {};
        for (n in e)
            Object.prototype.hasOwnProperty.call(e, n) && (i[n] = e[n]);
        for (n in t)
            Object.prototype.hasOwnProperty.call(t, n) && (i[n] = t[n]);
        return i
    };
    function f(e) {
        return (e || "").toString().replace(/</gm, "&lt;").replace(/>/gm, "&gt;").replace(/\"/gm, "&quot;").replace(/\'/gm, "&#39;")
    }
    function g() {
        var e = !1;
        return r.isCSR || (e = -1 !== location.search.indexOf("debug=1")),
        {
            isIOS: m(),
            isPad: r.isPad,
            isAndroid: r.isAndroid,
            isWechat: r.isWechat,
            isDebug: e,
            wxVersion: r.clientVersion(!0),
            isWPcWechat: r.isPcWechat,
            isPC: r.isPC
        }
    }
    function m() {
        return r.isiOS
    }
    function h(e, t) {
        var n = "/pages/webview/webview?";
        if (t)
            for (var i in t)
                n += i + "=" + t[i] + "&";
        else
            n += "target=h5";
        "&" != n.slice(-1)[0] && (n += "&"),
        WeixinJSBridge.invoke("invokeMiniProgramAPI", {
            name: "navigateTo",
            arg: {
                url: n + "url=" + encodeURIComponent(e)
            }
        }, (function(e) {
            console.log(JSON.stringify(e))
        }
        ))
    }
    function v(e) {
        var t = (navigator.userAgent || navigator.wxuserAgent || str).match(/MicroMessenger\/([\d\.]+)/i)
          , n = "";
        if (!(t && t.length > 1))
            return !1;
        n = (n = t[1]).split("."),
        e = e.split(".");
        for (var i = 0; i < n.length && i < e.length; i++) {
            if ((+n[i] || 0) > (+e[i] || 0))
                return !0;
            if ((+n[i] || 0) < (+e[i] || 0))
                return !1
        }
        return !1
    }
    e.exports = {
        getQueryStr: c,
        getUserLoginParamsStr: l,
        getUserLoginParams: function() {
            return {
                uin: c("uin", "", 1),
                key: c("key", "", 1),
                pass_ticket: c("pass_ticket", "", 1)
            }
        },
        mapToStr: d,
        ajaxRequest: function(e, t, n, r, a) {
            if ("function" == typeof a)
                var s = a;
            else if ("object" === (0,
            i.default)(a)) {
                var f = p({
                    method: "GET",
                    timeout: 15e3
                }, a);
                s = arguments[5]
            } else
                f = {};
            return -1 === e.indexOf("?") ? e += "?" : e += "&",
            "POST" === f.method ? e += "2" !== c("auth_type") || g().isWechat ? l() : u() : e = e + d(t) + "&" + ("2" !== c("auth_type") || g().isWechat ? l() : u()),
            this._QMAjax = new o(e,f.method,f.timeout),
            (new Date).getTime(),
            this._QMAjax.onComplete = function(e) {
                var t = {}
                  , i = (e.responseText || "").replace(/[\u0000-\u001f\u000B\u000C\u00A0\uFEFF\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u202E\u202D]/g, "");
                try {
                    t = JSON.parse(i)
                } catch (e) {
                    try {
                        t = new Function("return " + i)()
                    } catch (e) {
                        t = {}
                    }
                }
                n && n(t);
                (new Date).getTime()
            }
            ,
            this._QMAjax.onError = function(e, t) {
                "ok" !== t && r && r(t);
                try {
                    JSON.parse(e.responseText)
                } catch (t) {
                    ({
                        responseText: e.responseText
                    })
                }
                (new Date).getTime()
            }
            ,
            this._QMAjax.onTimeout = s,
            "string" == typeof t ? this._QMAjax.send(t) : this._QMAjax.send(d(t)),
            this._QMAjax
        },
        extend: p,
        tmpl: function(e, t, n) {
            return (e += "").replace(/\{(\w+)\}/g, (function(e, i) {
                return void 0 !== t[i] ? n ? t[i].toString() : f(t[i].toString()) : e
            }
            ))
        },
        filterXSS: f,
        clientInfo: g(),
        throttle: function(e, t, n) {
            var i;
            return function() {
                var r = arguments;
                clearTimeout(i),
                i = setTimeout((function() {
                    e.apply(n, r)
                }
                ), t)
            }
        },
        openWithWebView: function(e, t) {
            "miniprogram" === s.window.__wxjs_environment ? window.WeixinJSBridge ? h(e, t) : window.addEventListener("WeixinJSBridgeReady", (function() {
                h(e, t)
            }
            )) : a.openUrl(e)
        },
        setTitle: function(e) {
            var t = g();
            function n() {
                WeixinJSBridge.invoke("setPageTitle", {
                    title: e
                }, (function(e) {}
                ))
            }
            if (t.isWechat) {
                if (v("6.0.2") && (t.isAndroid || "yes" === window.__wxjs_is_wkwebview || window.__wxjs_is_wkwebview))
                    return void (s.window.WeixinJSBridge ? n() : document.addEventListener("WeixinJSBridgeReady", (function() {
                        n()
                    }
                    )));
                if (document.title = e,
                t.isWPcWechat)
                    return;
                var i = document.createElement("iframe");
                i.style.cssText = "width:0px;height:0px;display:none;",
                i.src = location.protocol + "//wximg.gtimg.com/tmt/game/dist/img/wgui/placeholder/1x1.png",
                i.onload = function() {
                    setTimeout((function() {
                        i.onload = null,
                        document.body.removeChild(i)
                    }
                    ), 0)
                }
                ,
                document.body.appendChild(i)
            } else
                document.title = e
        },
        base64_decode: function(e) {
            var t, n, i, r, o, a, s = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", c = 0, l = 0, u = [];
            if (!e)
                return e;
            e += "";
            do {
                t = (a = s.indexOf(e.charAt(c++)) << 18 | s.indexOf(e.charAt(c++)) << 12 | (r = s.indexOf(e.charAt(c++))) << 6 | (o = s.indexOf(e.charAt(c++)))) >> 16 & 255,
                n = a >> 8 & 255,
                i = 255 & a,
                u[l++] = 64 == r ? String.fromCharCode(t) : 64 == o ? String.fromCharCode(t, n) : String.fromCharCode(t, n, i)
            } while (c < e.length);return u.join("").replace(/\0+$/, "")
        },
        isBigClientVersion: v,
        getLoginParamsStrByLoginType: function(e) {
            return "2" !== c("auth_type") || g().isWechat ? l() : e ? u() : d({
                auth_type: 2,
                sig: c("sig") || "",
                timestamp: c("timestamp") || "",
                algorithm: c("algorithm") || "",
                version: c("version") || "",
                encode: c("encode") || "",
                msdkEncodeParam: c("msdkEncodeParam") || ""
            })
        },
        getInGameLoginByType: function() {
            return c("msdkEncodeParam") && c("appid") ? u() : d({
                appid: c("appid"),
                auth_type: 2,
                algorithm: c("algorithm"),
                encode: c("encode"),
                channelid: c("channelid"),
                nickname: c("nickname"),
                gameid: c("gameid"),
                os: c("os"),
                ts: c("ts"),
                version: c("version"),
                seq: c("seq"),
                sig: c("sig"),
                itopencodeparam: c("itopencodeparam")
            })
        },
        filterImg: function(e) {
            return c("debug") ? e : m() ? e.replace(/^https?\:/i, "") : (e = e.replace(/^\/\//i, "http://")).replace(/^https\:/i, "http:")
        },
        filterParamByKey: function(e, t) {
            return t.forEach((function(t, n) {
                if (e.hasOwnProperty(t)) {
                    var i = e[t];
                    null != i && null != i && "" != i && 0 != i && "0" != i || delete e[t]
                }
            }
            )),
            e
        },
        filterUrlByKey: function(e, t) {
            return t.forEach((function(t, n) {
                var i = new RegExp("[?&](" + t + "=([^&]*))","i")
                  , r = e.match(i);
                r && r.length > 2 && ("" == r[2] || "undefined" == r[2] || "0" == r[2]) && (e = e.replace(r[1], "").replace(/(\?|\&)\&/g, "$1"))
            }
            )),
            e
        },
        debounce: function(e, t, n) {
            var i;
            return function() {
                var r = arguments;
                i || (i = setTimeout((function() {
                    e.apply(n, r),
                    i = null
                }
                ), t))
            }
        }
    }
}
, function(e, t, n) {
    "use strict";
    var i = n(2)
      , r = i(n(24))
      , o = i(n(25))
      , a = n(0)
      , s = n(3)
      , c = n(6)
      , l = c.mapToStr
      , u = (c.strToMap,
    n(7));
    u = n(56),
    u = n(57),
    u = n(58),
    u = n(59),
    u = n(60),
    u = n(64),
    u = n(65),
    u = n(66);
    var d, p = n(1), f = n(18), g = n(32), m = {
        BLACK: "black",
        WHITE: "white"
    }, h = s.getQueryStr, v = function(e) {
        return !!h("wechat_pkgid", e)
    }, w = {
        profile: {
            params: {
                action: "openFinderProfile",
                finderUserName: "finderusername"
            },
            isSupport: function() {
                var e = p.getHexClientVersion();
                return !!(p.isiOS && e > 385879808) || !(!p.isAndroid || !(e >= 654316344 && e <= 654316383 || e >= 654316544))
            }
        },
        feed: {
            params: {
                action: "openFinderFeed",
                feedID: "feedid",
                nonceID: "nonceid"
            },
            isSupport: function() {
                var e = p.getHexClientVersion();
                return !!(p.isiOS && e > 385879808) || !(!p.isAndroid || !(e >= 654316344 && e <= 654316383 || e >= 654316544))
            }
        },
        live: {
            params: {
                action: "autoOpenFinderLive",
                finderUserName: "finderusername"
            },
            isSupport: function() {
                var e = p.getHexClientVersion();
                return !!(p.isiOS && e >= 385880616) || !(!p.isAndroid || !(e >= 654316604 && e <= 654316639 || e >= 654316720 && e <= 654316721 || e >= 654316800))
            }
        }
    }, _ = 654315776, y = 385880064, b = {
        filterOpenUrl: function(e) {
            return -1 == e.indexOf("http") ? location.protocol + "//" + e.replace(/^\s*\/\//, "") : e.replace(/https?:/, location.protocol)
        },
        isPureMiniAppUrl: function(e) {
            return e.match(/^weapp:\/\/\S+/)
        },
        isPureWeVideoUrl: function(e) {
            return e.match(/^wevideo:\/\/\S+/)
        },
        isPureWeGamelifeUrl: function(e) {
            return e.match(/^wegamelife:\/\/\S+/)
        },
        safeJump: function(e) {
            var t = e.JumpUrl;
            x.reportOpenRateA(e),
            e.openUrlQualityInstance.EndLogic({
                openUrl: {
                    res: "goLocation"
                },
                err_msg: e.progress
            }),
            h("uin", t) || -1 != t.indexOf("#wechat_redirect") || (t += "#wechat_redirect"),
            setTimeout((function() {
                a.window.location.href = t
            }
            ), 200)
        },
        resGen: function(e) {
            return {
                err_msg: {
                    timeout: "openUrl:fail,getuinkey timeout",
                    oldver: "openUrl:fail,too old to support jsapi",
                    invalid: "openUrl:fail,url invalid"
                }[e]
            }
        },
        canOpenNext: function(e) {
            var t = p.clientVersion(!0);
            p.versionCompare(t, "6.6.0") >= 0 ? u.getGameCommInfo({
                cmd: 10002
            }, (function(t) {
                t.webpageCount ? parseInt("" + t.webpageCount) < 5 && e() : s.log("getGameCommInfo cmd 10002 error")
            }
            )) : e()
        },
        openWebview: function(e, t) {
            var n = e.JumpUrl || ""
              , i = function(t, n) {
                e.progress = "openUrlWithExtraWebview",
                u.openUrlWithExtraWebview({
                    url: t,
                    openType: "1",
                    open_game_webview: "1"
                }, (function(e) {
                    n && n(e)
                }
                ))
            };
            e.useGameOpen ? 1 == e.extparam.fullscreen ? (e.progress = "enableGameView",
            e.jTimer && p.isWechat && clearTimeout(e.jTimer),
            u.enableGameView({
                url: n,
                Orientation: e.extparam.Orientation || 1
            }, (function(e) {
                t && t(e)
            }
            ))) : function(t, n) {
                null == e.extparam.statusBarStyle || e.extparam.statusBarStyle in m || console.error("extparam.statusBarStyle illegal,must be oneof", m);
                var i = u.openGameUrlWithExtraWebView({
                    url: t,
                    openType: "1",
                    open_game_webview: "1",
                    statusBarColor: e.statusBarColor,
                    statusBarStyle: e.statusBarStyle,
                    useJscore: !!e.useJscore
                }, (function(e) {
                    n && n(e)
                }
                ));
                e.progress = i ? "jscore" : "openGameUrlWithExtraWebView"
            }(n, (function(e) {
                e.err_msg && -1 == e.err_msg.indexOf(":ok") ? i(n, (function(e) {
                    t && t(e)
                }
                )) : t && t(e)
            }
            )) : i(n, (function(e) {
                t && t(e)
            }
            ))
        },
        calWeichatPkgid: function(e) {
            e = e.replace(/\?.+$, ''/);
            var t = /https?:\/\/game\.weixin\.qq.com\/cgi-bin\/[^/]+?\/static\//;
            if (!t.test(e))
                return "";
            var n = "";
            try {
                n = e.match(/\/cgi-bin\/([^/]+)/)[1]
            } catch (e) {}
            var i = e.replace(t, "").replace(/\.html.*?$/, "").replace(/\//g, "_").replace(/\-/g, "_");
            return "h5" !== n && (i = "".concat(n, "__").concat(i)),
            i
        },
        checkIsCloseWepkgInUrl: function(e) {
            return !!h("nowepkg", e)
        },
        checkIsGameHostInUrl: function(e) {
            return !!/\/\/game\.weixin\.qq\.com/.test(e)
        },
        checkIsDisableInImmersiveUrl: function(e) {
            return !(!p.isiOS || p.versionCompare(p.clientVersion(!0), "7.0.16") >= 0)
        },
        checkNeedImmersiveParamInUrl: function(e) {
            return ["/cgi-bin/h5/static/gamelife/homepage.html", "/cgi-bin/h5/static/profile_v2/index.html"].find((function(t) {
                return e.indexOf(t) > -1
            }
            )) && !b.checkIsDisableInImmersiveUrl(e) && !b.checkHasImmersiveParamInUrl(e)
        },
        checkHasImmersiveParamInUrl: function(e) {
            return !!h("wechat_immersive", e) || !!h("immersivePageBgIsDark", e) || !!h("immersiveUIStyle", e)
        },
        getWeVideoActionFromUrl: function(e) {
            var t = /^wevideo:\/\/([a-z]+)\?/.exec(e);
            if (t)
                return t[1]in w ? t[1] : void 0
        },
        checkIsSuppportJumpWeVideo: function(e) {
            return w[e].isSupport()
        },
        checkIsSupportJumpWeVideoByJsapi: function() {
            return !!p.isiOS || p.getHexClientVersion() >= 654316800
        },
        getWeVideoParamsFromUrl: function(e, t) {
            var n = w[e].params
              , i = {};
            return Object.keys(n).forEach((function(e) {
                i[e] = "action" === e ? n[e] : decodeURIComponent(h(n[e], t))
            }
            )),
            i
        },
        checkIsSupportNativeChatFromJSAPI: function() {
            return new Promise((function(e, t) {
                u.verifyJsapi(["getGameCommInfo"], (function() {
                    u.invoke("getGameCommInfo", {
                        cmd: 10010
                    }, (function(t) {
                        var n = !1 !== (t = "string" == typeof t ? JSON.parse(t) : t).disable_gamelife_api;
                        try {
                            localStorage.setItem("_is_support_native_chat_v3", n ? "0" : "1")
                        } catch (e) {}
                        e(!n)
                    }
                    ))
                }
                ))
            }
            ))
        },
        checkIsSupportJumpNativeGamelife: function() {
            try {
                return !(p.isAndroid && p.hexVersionCompare(p.getHexClientVersion(), _) < 0) && (!(p.isiOS && p.hexVersionCompare(p.getHexClientVersion(), y) < 0) && new Promise((function(e, t) {
                    var n = localStorage.getItem("_is_support_native_chat_v31");
                    if ("1" === n)
                        e(!0);
                    else {
                        if ("0" !== n)
                            return e(b.checkIsSupportNativeChatFromJSAPI());
                        e(!1)
                    }
                    b.checkIsSupportNativeChatFromJSAPI()
                }
                )))
            } catch (e) {
                return b.checkIsSupportNativeChatFromJSAPI()
            }
        },
        getWeGamelifeFromUrl: function(e) {
            var t = /^wegamelife:\/\/([a-z]+)\?/.exec(e);
            if (t)
                return "chatpage" === t[1] ? t[1] : void 0
        }
    }, x = {
        urlPretreatment: function(e) {
            e.JumpUrl = b.filterOpenUrl(e.srcurl),
            e.JumpUrl = e.JumpUrl.replace(/#wechat_redirect/g, "");
            var t = h("abt", null, top)
              , n = h("abt", e.srcurl) || 0;
            n && (t = n),
            e.extparam.abt = e.extparam.abt || t;
            var i = e.extparam;
            i.ssid = i.ssid || 0,
            i.abt = i.abt || 0;
            var r = [];
            h("rpt_allpath") && r.push(h("rpt_allpath")),
            i.ssid && r.push(i.ssid),
            r.length > 0 && (i.rpt_allpath = r.join("_")),
            0 === ("" + i.ssid).indexOf("act") && (i.ssid = i.ssid.replace("act", "")),
            h("isFromWeappEntry") && (i.isFromWeappEntry = h("isFromWeappEntry"));
            var o = -1 != e.JumpUrl.indexOf("?") ? "&" : "?"
              , a = !!i.closeWepkg || b.checkIsCloseWepkgInUrl(e.JumpUrl) || b.checkIsCloseWepkgInUrl(location.href);
            for (var c in {
                closeWepkg: 1,
                useGameOpen: 1,
                statusBarStyle: 1,
                statusBarColor: 1,
                useJscore: 1
            })
                delete i[c];
            var u = v(e.JumpUrl);
            if (!a && !u) {
                var d = b.calWeichatPkgid(e.JumpUrl);
                d && (i.wechat_pkgid = encodeURIComponent(d))
            }
            a && (e.JumpUrl = s.removeQueryStringKey("nowepkg", e.JumpUrl),
            e.JumpUrl = s.removeQueryStringKey("wechat_pkgid", e.JumpUrl),
            delete i.wechat_pkgid,
            i.nowepkg = 1),
            b.checkIsDisableInImmersiveUrl(e.JumpUrl) && (e.JumpUrl = s.removeQueryStringKey("wechat_immersive", e.JumpUrl),
            e.JumpUrl = s.removeQueryStringKey("immersivePageBgIsDark", e.JumpUrl),
            e.JumpUrl = s.removeQueryStringKey("immersiveUIStyle", e.JumpUrl)),
            b.checkNeedImmersiveParamInUrl(e.JumpUrl) && (i.wechat_immersive = 1,
            i.immersivePageBgIsDark = 1,
            i.immersiveUIStyle = 1);
            var p = e.JumpUrl + o + l(i);
            return e.extparam = i,
            e.allPathTemp = r,
            v(p) ? e.JumpUrl = p : e.JumpUrl = p + ("#" == p.slice(-1)[0] ? "" : "#") + "wechat_redirect",
            e
        },
        processMiniApp: function(e) {
            var t = b.isPureMiniAppUrl(e.srcurl)
              , n = t ? e.srcurl : b.filterOpenUrl(e.srcurl)
              , i = e.extparam
              , r = e.allPathTemp;
            if (-1 != n.indexOf(encodeURIComponent("weapp://")) || -1 != n.indexOf("weapp://")) {
                var o = ""
                  , a = {};
                return o = (o = t ? e.srcurl : decodeURIComponent(h("weapp", n))).replace(/weapp:\/\/([\d\w]+)/g, (function(e, t) {
                    return a.targetAppId = t,
                    ""
                }
                )),
                a.path = decodeURIComponent(h("path", o)),
                i.ssid && (a.path += (-1 == a.path.indexOf("?") ? "?" : "&") + "ssid=" + i.ssid + "&rpt_allpath=" + r.join("_")),
                n = n.replace(/weapp=[^&#]+/g, ""),
                u.launchMiniProgram({
                    referrerAppId: "wx62d9035fd4fd2059",
                    targetAppId: a.targetAppId,
                    path: a.path,
                    envVersion: h("env_version", o)
                }, (function(n) {
                    -1 != n.err_msg.indexOf(":ok") ? e.callback(n) : t ? -1 != n.err_msg.indexOf("clientVersion") ? e.callback(b.resGen("oldver")) : e.callback(n) : (x.reportNoWepkg(e),
                    x.processSafeLogic(e).processIos(e).processAndroid(e))
                }
                )),
                !0
            }
            return !1
        },
        processWeVideo: function(e) {
            if (!b.isPureWeVideoUrl(e.srcurl))
                return !1;
            if (!p.isWechat)
                return !0;
            var t = b.getWeVideoActionFromUrl(e.srcurl);
            if (!t)
                return e.callback(b.resGen("invalid")),
                !0;
            if (b.checkIsSuppportJumpWeVideo(t)) {
                var n = b.getWeVideoParamsFromUrl(t, e.srcurl);
                b.checkIsSupportJumpWeVideoByJsapi() ? u.openFinderView(n, e.callback) : u.openUrlWithExtraWebview({
                    url: "https://game.weixin.qq.com/cgi-bin/h5/static/circlecenter/tpjump.html?not_in_game_luggage=1&jump=".concat(encodeURIComponent(e.srcurl), "&wechat_pkgid=circlecenter_tpjump"),
                    openType: "1"
                }, e.callback)
            } else
                g.alert("该内容由视频号提供，当前微信版本过低，无法打开，请更新微信", {
                    confirmTxt: "更新微信",
                    closeTxt: "取消",
                    style: "twoBtn",
                    confirmCb: function() {
                        u.openUrl("https://support.weixin.qq.com/update/")
                    },
                    closeCb: function() {}
                });
            return !0
        },
        processWeGamelife: (d = (0,
        o.default)(r.default.mark((function e(t) {
            return r.default.wrap((function(e) {
                for (; ; )
                    switch (e.prev = e.next) {
                    case 0:
                        if (b.isPureWeGamelifeUrl(t.srcurl)) {
                            e.next = 3;
                            break
                        }
                        return e.abrupt("return", !1);
                    case 3:
                        if (b.getWeGamelifeFromUrl(t.srcurl)) {
                            e.next = 7;
                            break
                        }
                        return t.callback(b.resGen("invalid")),
                        e.abrupt("return", !0);
                    case 7:
                        return e.next = 9,
                        b.checkIsSupportJumpNativeGamelife();
                    case 9:
                        if (!e.sent) {
                            e.next = 13;
                            break
                        }
                        u.invoke("startGameLifeConversation", {
                            fromUserName: h("from_username", t.srcurl),
                            toUserName: h("to_username", t.srcurl)
                        }, t.callback),
                        e.next = 14;
                        break;
                    case 13:
                        u.openUrl("https://game.weixin.qq.com/cgi-bin/h5/static/gamelife/chatpage.html?session_id=".concat(h("session_id", t.srcurl)), {}, t.callback);
                    case 14:
                        return e.abrupt("return", !0);
                    case 15:
                    case "end":
                        return e.stop()
                    }
            }
            ), e)
        }
        ))),
        function(e) {
            return d.apply(this, arguments)
        }
        ),
        processAndroid: function(e) {
            var t = this;
            if (!p.isAndroid)
                return this;
            function n(n) {
                e.jTimer && clearTimeout(e.jTimer),
                n.err_msg && -1 == n.err_msg.indexOf(":ok") ? setTimeout((function() {
                    e.callback(n),
                    b.safeJump(e)
                }
                ), 200) : (t.reportOpenRateA(e),
                e.callback(n))
            }
            var i = p.clientVersion(!0);
            if (p.isAndroid && p.versionCompare(i, "6.5.9") > 0 && !0 === e.extparam.gameView)
                return e.progress = "openGameWebView",
                u.openGameWebView({
                    url: e.JumpUrl
                }, n),
                this;
            if (1 == e.extparam.fullscreen) {
                e.progress = "openCustomWebview";
                var r = "vertical";
                2 == e.extparam.Orientation && (r = "horizontal"),
                u.openCustomWebview({
                    orientation: r,
                    fullscreen: "true",
                    url: e.JumpUrl,
                    open_game_webview: "1"
                }, n)
            } else
                e.progress = "canOpenNext",
                b.canOpenNext((function() {
                    b.openWebview(e, n)
                }
                ));
            return this
        },
        processIos: function(e) {
            var t = this;
            return p.isiOS && b.openWebview(e, (function(n) {
                e.jTimer && clearTimeout(e.jTimer),
                -1 == n.err_msg.indexOf(":ok") ? setTimeout((function() {
                    e.callback(n),
                    b.safeJump(e)
                }
                ), 200) : (t.reportOpenRateA(e),
                e.callback(n))
            }
            )),
            this
        },
        processSafeLogic: function(e) {
            return e.jTimer = setTimeout((function() {
                e.callback(b.resGen("timeout")),
                b.safeJump(e)
            }
            ), p.isWechat ? 2e3 : 500),
            this
        },
        processContext: function(e, t, n) {
            var i = {};
            return i.srcurl = e + "",
            i.extparam = t || {},
            i.callback = "function" == typeof n ? n : function() {}
            ,
            i.allPathTemp = [],
            i.JumpUrl = "",
            p.isAndroid && !b.checkIsGameHostInUrl(i.srcurl) ? i.useGameOpen = !1 : null != i.extparam.useGameOpen ? i.useGameOpen = i.extparam.useGameOpen : i.useGameOpen = !0,
            null != i.extparam.statusBarStyle && (i.statusBarStyle = i.extparam.statusBarStyle),
            null != i.extparam.statusBarColor && (i.statusBarColor = i.extparam.statusBarColor),
            null != i.extparam.useJscore && (i.useJscore = i.extparam.useJscore),
            i
        },
        getRandom: function(e) {
            return !0
        },
        stipUrl: function(e) {
            return e.replace(/\?{1,}(.*)/, "").replace(/^http(s)?:\/\//, "")
        },
        generateRateKey: function(e) {
            var t = e.srcurl
              , n = Date.now()
              , i = this.stipUrl(t)
              , r = this.stipUrl(a.window.location.href);
            try {
                var o = "openRate_" + i
                  , s = JSON.stringify({
                    fromUrl: r,
                    time: n
                });
                localStorage.setItem(o, s)
            } catch (t) {
                e.openRateInstance.EndLogic({
                    err_msg: "generateRateKey_localstorage error"
                })
            }
            return n
        },
        reportNoWepkg: function(e) {
            var t = e.JumpUrl;
            v(t) || (t = c.getDomainPath(t),
            e.openUrlWepkgUrlQualityInstance && e.openUrlWepkgUrlQualityInstance.EndLogic({
                err_msg: t
            }))
        },
        reportOpenRateA: function(e) {
            e.canOpenRate && e.openRateInstance.EndLogic({
                err_msg: JSON.stringify({
                    targetUrl: e.srcurl
                })
            })
        }
    };
    u.openUrl = u.openUrl || function() {
        var e = (0,
        o.default)(r.default.mark((function e(t, n, i) {
            var o;
            return r.default.wrap((function(e) {
                for (; ; )
                    switch (e.prev = e.next) {
                    case 0:
                        if (this,
                        o = {},
                        n = n || {},
                        /:?\/\//g.test(t)) {
                            e.next = 6;
                            break
                        }
                        return i && i(b.resGen("invalid")),
                        e.abrupt("return");
                    case 6:
                        if (o = x.processContext(t, n, i),
                        (o = x.urlPretreatment(o)).openUrlQualityInstance = f.StartRuner("openUrl", {
                            url: t,
                            extparam: n
                        }),
                        o.openUrlWepkgUrlQualityInstance = f.StartRuner("openUrlWepkg", {
                            url: t,
                            extparam: n
                        }),
                        o.openRateInstance = f.StartRuner("openRateStart", {
                            url: t,
                            extparam: n
                        }),
                        o.canOpenRate = x.getRandom(),
                        o.canOpenRate && x.generateRateKey(o),
                        !x.processMiniApp(o)) {
                            e.next = 16;
                            break
                        }
                        return e.abrupt("return");
                    case 16:
                        if (!x.processWeVideo(o)) {
                            e.next = 19;
                            break
                        }
                        return e.abrupt("return");
                    case 19:
                        return e.next = 21,
                        x.processWeGamelife(o);
                    case 21:
                        if (!e.sent) {
                            e.next = 24;
                            break
                        }
                        return e.abrupt("return");
                    case 24:
                        x.reportNoWepkg(o),
                        x.processSafeLogic(o).processIos(o).processAndroid(o);
                    case 26:
                    case "end":
                        return e.stop()
                    }
            }
            ), e, this)
        }
        )));
        return function(t, n, i) {
            return e.apply(this, arguments)
        }
    }(),
    e.exports = u
}
, function(e, t, n) {
    e.exports = n(52)
}
, function(e, t) {
    function n(e, t, n, i, r, o, a) {
        try {
            var s = e[o](a)
              , c = s.value
        } catch (e) {
            return void n(e)
        }
        s.done ? t(c) : Promise.resolve(c).then(i, r)
    }
    e.exports = function(e) {
        return function() {
            var t = this
              , i = arguments;
            return new Promise((function(r, o) {
                var a = e.apply(t, i);
                function s(e) {
                    n(a, r, o, s, c, "next", e)
                }
                function c(e) {
                    n(a, r, o, s, c, "throw", e)
                }
                s(void 0)
            }
            ))
        }
    }
}
, function(e, t) {
    e.exports = function(e, t) {
        if (!(e instanceof t))
            throw new TypeError("Cannot call a class as a function")
    }
}
, function(e, t) {
    function n(e, t) {
        for (var n = 0; n < t.length; n++) {
            var i = t[n];
            i.enumerable = i.enumerable || !1,
            i.configurable = !0,
            "value"in i && (i.writable = !0),
            Object.defineProperty(e, i.key, i)
        }
    }
    e.exports = function(e, t, i) {
        return t && n(e.prototype, t),
        i && n(e, i),
        e
    }
}
, function(e, t, n) {
    "use strict";
    var i = n(2)(n(4))
      , r = n(11)
      , o = n(3)
      , a = n(6)
      , s = n(1)
      , c = o.getQueryStr
      , l = n(0);
    l.window;
    !function(t, n, r) {
        var u = t.reportObj;
        function d(e) {
            var t = c("rpt_ssid_str") || ""
              , n = e.sExternInfo;
            try {
                if (!t)
                    return e;
                if (n)
                    if ("string" == typeof n) {
                        var r = JSON.parse(n);
                        r = o.extend({
                            rpt_ssid_str: t
                        }, r),
                        n = JSON.stringify(r)
                    } else
                        "object" === (0,
                        i.default)(n) && (n = JSON.stringify(o.extend({
                            rpt_ssid_str: t
                        }, n)));
                else
                    n = JSON.stringify({
                        rpt_ssid_str: t
                    });
                return e.sExternInfo = n,
                e
            } catch (t) {
                return e
            }
        }
        e.exports = function(e, t, n) {
            if (!s.isMSDK) {
                var i = new XMLHttpRequest
                  , r = [];
                i.onreadystatechange = function() {}
                ;
                for (var o = 0, c = e.length; o < c; o++) {
                    var p = e[o]
                      , f = "";
                    f += "PageKey=" + ((p = d(p)).PageKey || u.PageKey || ""),
                    f += "&Network=" + (p.sConnectType || u.networktype || ""),
                    f += "&DeviceLevel=" + (p.DeviceLevel || ""),
                    f += "&Url=" + encodeURIComponent(l.window.location.href),
                    f += "&IsWepkg=" + (p.IsWepkg || 0),
                    f += "&IsLuggage=" + (p.IsLuggage || 0),
                    f += "&IsPreload=" + (p.IsPreload || 0),
                    f += "&WepkgVersion=" + (p.WepkgVersion || ""),
                    f += "&CommJsVersion=" + (p.CommJsVersion || ""),
                    f += "&Type=" + (p.Type || 0),
                    f += "&Target=" + (p.Target || ""),
                    f += "&Params=" + (p.Params || ""),
                    f += "&Result=" + (p.Result || ""),
                    f += "&CostTime=" + (p.CostTime || 0),
                    f += "&CurrentUrl=" + encodeURIComponent(l.window.location.href),
                    f += "&IsError=" + (p.IsError || 0),
                    window.__KULP_BUILD_VERSION__ && (f += "&BuildVersion=" + (window.__KULP_BUILD_VERSION__ || ""));
                    var g = a.strToMap(f, "&", "=");
                    r.push(g)
                }
                var m = r.length > 1 ? "POST" : "GET"
                  , h = "https://game.weixin.qq.com/cgi-bin/gamewxagcommwap/report?" + (r.length > 1 ? "" : "" + a.mapToStr(r[0])) + "&QB&";
                i.open(m, h, !0),
                r.length > 1 && i.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"),
                i.send(r.length > 1 ? JSON.stringify({
                    batchdata: r
                }) : null)
            }
        }
    }(r, window, document)
}
, function(e, t, n) {
    "use strict";
    (function(e, i) {
        var r = n(2)(n(4))
          , o = n(16)
          , a = n(30)
          , s = /\b__p \+= '';/g
          , c = /\b(__p \+=) '' \+/g
          , l = /(__e\(.*?\)|\b__t\)) \+\n'';/g
          , u = /\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g
          , d = /^\[object .+?Constructor\]$/
          , p = /^(?:0|[1-9]\d*)$/
          , f = /($^)/
          , g = /['\n\r\u2028\u2029\\]/g
          , m = {};
        m["[object Float32Array]"] = m["[object Float64Array]"] = m["[object Int8Array]"] = m["[object Int16Array]"] = m["[object Int32Array]"] = m["[object Uint8Array]"] = m["[object Uint8ClampedArray]"] = m["[object Uint16Array]"] = m["[object Uint32Array]"] = !0,
        m["[object Arguments]"] = m["[object Array]"] = m["[object ArrayBuffer]"] = m["[object Boolean]"] = m["[object DataView]"] = m["[object Date]"] = m["[object Error]"] = m["[object Function]"] = m["[object Map]"] = m["[object Number]"] = m["[object Object]"] = m["[object RegExp]"] = m["[object Set]"] = m["[object String]"] = m["[object WeakMap]"] = !1;
        var h = {
            "\\": "\\",
            "'": "'",
            "\n": "n",
            "\r": "r",
            "\u2028": "u2028",
            "\u2029": "u2029"
        }
          , v = "object" == (void 0 === e ? "undefined" : (0,
        r.default)(e)) && e && e.Object === Object && e
          , w = "object" == ("undefined" == typeof self ? "undefined" : (0,
        r.default)(self)) && self && self.Object === Object && self
          , _ = v || w || Function("return this")()
          , y = "object" == (0,
        r.default)(t) && t && !t.nodeType && t
          , b = y && "object" == (0,
        r.default)(i) && i && !i.nodeType && i
          , x = b && b.exports === y
          , k = x && v.process
          , S = function() {
            try {
                var e = b && b.require && b.require("util").types;
                return e || k && k.binding && k.binding("util")
            } catch (e) {}
        }()
          , I = S && S.isTypedArray;
        function A(e, t, n) {
            switch (n.length) {
            case 0:
                return e.call(t);
            case 1:
                return e.call(t, n[0]);
            case 2:
                return e.call(t, n[0], n[1]);
            case 3:
                return e.call(t, n[0], n[1], n[2])
            }
            return e.apply(t, n)
        }
        function C(e, t) {
            for (var n = -1, i = null == e ? 0 : e.length, r = Array(i); ++n < i; )
                r[n] = t(e[n], n, e);
            return r
        }
        function T(e) {
            return "\\" + h[e]
        }
        function E(e, t) {
            return function(n) {
                return e(t(n))
            }
        }
        var O, L = Function.prototype, D = Object.prototype, W = _["__core-js_shared__"], R = L.toString, P = D.hasOwnProperty, j = (O = /[^.]+$/.exec(W && W.keys && W.keys.IE_PROTO || "")) ? "Symbol(src)_1." + O : "", U = D.toString, M = R.call(Object), N = RegExp("^" + R.call(P).replace(/[\\^$.*+?()[\]{}|]/g, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"), B = x ? _.Buffer : void 0, G = _.Symbol, J = E(Object.getPrototypeOf, Object), V = D.propertyIsEnumerable, q = G ? G.toStringTag : void 0, F = function() {
            try {
                var e = function(e) {
                    return !(!xe(e) || function(e) {
                        return !!j && j in e
                    }(e)) && (ye(e) ? N : d).test(function(e) {
                        if (null != e) {
                            try {
                                return R.call(e)
                            } catch (e) {}
                            try {
                                return e + ""
                            } catch (e) {}
                        }
                        return ""
                    }(e))
                }(t = function(e, t) {
                    return null == e ? void 0 : e[t]
                }(Object, "defineProperty")) ? t : void 0;
                return e({}, "", {}),
                e
            } catch (e) {}
            var t
        }(), K = B ? B.isBuffer : void 0, H = E(Object.keys, Object), Q = Math.max, X = Date.now, z = G ? G.prototype : void 0, $ = z ? z.toString : void 0;
        function Y(e, t) {
            var n = he(e)
              , i = !n && me(e)
              , r = !n && !i && we(e)
              , o = !n && !i && !r && Se(e)
              , a = n || i || r || o
              , s = a ? function(e, t) {
                for (var n = -1, i = Array(e); ++n < e; )
                    i[n] = t(n);
                return i
            }(e.length, String) : []
              , c = s.length;
            for (var l in e)
                !t && !P.call(e, l) || a && ("length" == l || r && ("offset" == l || "parent" == l) || o && ("buffer" == l || "byteLength" == l || "byteOffset" == l) || se(l, c)) || s.push(l);
            return s
        }
        function Z(e, t, n) {
            var i = e[t];
            P.call(e, t) && ge(i, n) && (void 0 !== n || t in e) || ee(e, t, n)
        }
        function ee(e, t, n) {
            "__proto__" == t && F ? F(e, t, {
                configurable: !0,
                enumerable: !0,
                value: n,
                writable: !0
            }) : e[t] = n
        }
        function te(e) {
            return null == e ? void 0 === e ? "[object Undefined]" : "[object Null]" : q && q in Object(e) ? function(e) {
                var t = P.call(e, q)
                  , n = e[q];
                try {
                    e[q] = void 0;
                    var i = !0
                } catch (e) {}
                var r = U.call(e);
                i && (t ? e[q] = n : delete e[q]);
                return r
            }(e) : function(e) {
                return U.call(e)
            }(e)
        }
        function ne(e) {
            return ke(e) && "[object Arguments]" == te(e)
        }
        function ie(e) {
            if (!xe(e))
                return function(e) {
                    var t = [];
                    if (null != e)
                        for (var n in Object(e))
                            t.push(n);
                    return t
                }(e);
            var t = le(e)
              , n = [];
            for (var i in e)
                ("constructor" != i || !t && P.call(e, i)) && n.push(i);
            return n
        }
        function re(e, t) {
            return fe(function(e, t, n) {
                return t = Q(void 0 === t ? e.length - 1 : t, 0),
                function() {
                    for (var i = arguments, r = -1, o = Q(i.length - t, 0), a = Array(o); ++r < o; )
                        a[r] = i[t + r];
                    r = -1;
                    for (var s = Array(t + 1); ++r < t; )
                        s[r] = i[r];
                    return s[t] = n(a),
                    A(e, this, s)
                }
            }(e, t, Ee), e + "")
        }
        function oe(e) {
            if ("string" == typeof e)
                return e;
            if (he(e))
                return C(e, oe) + "";
            if (function(e) {
                return "symbol" == (0,
                r.default)(e) || ke(e) && "[object Symbol]" == te(e)
            }(e))
                return $ ? $.call(e) : "";
            var t = e + "";
            return "0" == t && 1 / e == -1 / 0 ? "-0" : t
        }
        function ae(e, t, n, i) {
            return void 0 === e || ge(e, D[n]) && !P.call(i, n) ? t : e
        }
        function se(e, t) {
            var n = (0,
            r.default)(e);
            return !!(t = null == t ? 9007199254740991 : t) && ("number" == n || "symbol" != n && p.test(e)) && e > -1 && e % 1 == 0 && e < t
        }
        function ce(e, t, n) {
            if (!xe(n))
                return !1;
            var i = (0,
            r.default)(t);
            return !!("number" == i ? ve(n) && se(t, n.length) : "string" == i && t in n) && ge(n[t], e)
        }
        function le(e) {
            var t = e && e.constructor;
            return e === ("function" == typeof t && t.prototype || D)
        }
        var ue, de, pe, fe = (ue = F ? function(e, t) {
            return F(e, "toString", {
                configurable: !0,
                enumerable: !1,
                value: (n = t,
                function() {
                    return n
                }
                ),
                writable: !0
            });
            var n
        }
        : Ee,
        de = 0,
        pe = 0,
        function() {
            var e = X()
              , t = 16 - (e - pe);
            if (pe = e,
            t > 0) {
                if (++de >= 800)
                    return arguments[0]
            } else
                de = 0;
            return ue.apply(void 0, arguments)
        }
        );
        function ge(e, t) {
            return e === t || e != e && t != t
        }
        var me = ne(function() {
            return arguments
        }()) ? ne : function(e) {
            return ke(e) && P.call(e, "callee") && !V.call(e, "callee")
        }
          , he = Array.isArray;
        function ve(e) {
            return null != e && be(e.length) && !ye(e)
        }
        var we = K || function() {
            return !1
        }
        ;
        function _e(e) {
            if (!ke(e))
                return !1;
            var t = te(e);
            return "[object Error]" == t || "[object DOMException]" == t || "string" == typeof e.message && "string" == typeof e.name && !function(e) {
                if (!ke(e) || "[object Object]" != te(e))
                    return !1;
                var t = J(e);
                if (null === t)
                    return !0;
                var n = P.call(t, "constructor") && t.constructor;
                return "function" == typeof n && n instanceof n && R.call(n) == M
            }(e)
        }
        function ye(e) {
            if (!xe(e))
                return !1;
            var t = te(e);
            return "[object Function]" == t || "[object GeneratorFunction]" == t || "[object AsyncFunction]" == t || "[object Proxy]" == t
        }
        function be(e) {
            return "number" == typeof e && e > -1 && e % 1 == 0 && e <= 9007199254740991
        }
        function xe(e) {
            var t = (0,
            r.default)(e);
            return null != e && ("object" == t || "function" == t)
        }
        function ke(e) {
            return null != e && "object" == (0,
            r.default)(e)
        }
        var Se = I ? function(e) {
            return function(t) {
                return e(t)
            }
        }(I) : function(e) {
            return ke(e) && be(e.length) && !!m[te(e)]
        }
        ;
        var Ie, Ae = (Ie = function(e, t, n, i) {
            !function(e, t, n, i) {
                var r = !n;
                n || (n = {});
                for (var o = -1, a = t.length; ++o < a; ) {
                    var s = t[o]
                      , c = i ? i(n[s], e[s], s, n, e) : void 0;
                    void 0 === c && (c = e[s]),
                    r ? ee(n, s, c) : Z(n, s, c)
                }
            }(t, function(e) {
                return ve(e) ? Y(e, !0) : ie(e)
            }(t), e, i)
        }
        ,
        re((function(e, t) {
            var n = -1
              , i = t.length
              , r = i > 1 ? t[i - 1] : void 0
              , o = i > 2 ? t[2] : void 0;
            for (r = Ie.length > 3 && "function" == typeof r ? (i--,
            r) : void 0,
            o && ce(t[0], t[1], o) && (r = i < 3 ? void 0 : r,
            i = 1),
            e = Object(e); ++n < i; ) {
                var a = t[n];
                a && Ie(e, a, n, r)
            }
            return e
        }
        )));
        function Ce(e) {
            return ve(e) ? Y(e) : function(e) {
                if (!le(e))
                    return H(e);
                var t = [];
                for (var n in Object(e))
                    P.call(e, n) && "constructor" != n && t.push(n);
                return t
            }(e)
        }
        var Te = re((function(e, t) {
            try {
                return A(e, void 0, t)
            } catch (e) {
                return _e(e) ? e : new Error(e)
            }
        }
        ));
        function Ee(e) {
            return e
        }
        i.exports = function(e, t, n) {
            var i, r = a.imports._.templateSettings || a;
            n && ce(e, t, n) && (t = void 0),
            e = null == (i = e) ? "" : oe(i),
            t = Ae({}, t, r, ae);
            var d, p, m, h = Ae({}, t.imports, r.imports, ae), v = Ce(h), w = (d = h,
            C(v, (function(e) {
                return d[e]
            }
            ))), _ = 0, y = t.interpolate || f, b = "__p += '", x = RegExp((t.escape || f).source + "|" + y.source + "|" + (y === o ? u : f).source + "|" + (t.evaluate || f).source + "|$", "g"), k = P.call(t, "sourceURL") ? "//# sourceURL=" + (t.sourceURL + "").replace(/[\r\n]/g, " ") + "\n" : "";
            e.replace(x, (function(t, n, i, r, o, a) {
                return i || (i = r),
                b += e.slice(_, a).replace(g, T),
                n && (p = !0,
                b += "' +\n__e(" + n + ") +\n'"),
                o && (m = !0,
                b += "';\n" + o + ";\n__p += '"),
                i && (b += "' +\n((__t = (" + i + ")) == null ? '' : __t) +\n'"),
                _ = a + t.length,
                t
            }
            )),
            b += "';\n";
            var S = P.call(t, "variable") && t.variable;
            S || (b = "with (obj) {\n" + b + "\n}\n"),
            b = (m ? b.replace(s, "") : b).replace(c, "$1").replace(l, "$1;"),
            b = "function(" + (S || "obj") + ") {\n" + (S ? "" : "obj || (obj = {});\n") + "var __t, __p = ''" + (p ? ", __e = _.escape" : "") + (m ? ", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n" : ";\n") + b + "return __p\n}";
            var I = Te((function() {
                return Function(v, k + "return " + b).apply(void 0, w)
            }
            ));
            if (I.source = b,
            _e(I))
                throw I;
            return I
        }
    }
    ).call(this, n(13), n(14)(e))
}
, function(e, t, n) {
    "use strict";
    (function(t) {
        var i = n(2)(n(4))
          , r = n(16)
          , o = /[&<>"']/g
          , a = RegExp(o.source)
          , s = "object" == (void 0 === t ? "undefined" : (0,
        i.default)(t)) && t && t.Object === Object && t
          , c = "object" == ("undefined" == typeof self ? "undefined" : (0,
        i.default)(self)) && self && self.Object === Object && self
          , l = s || c || Function("return this")();
        var u, d = (u = {
            "&": "&amp;",
            "<": "&lt;",
            ">": "&gt;",
            '"': "&quot;",
            "'": "&#39;"
        },
        function(e) {
            return null == u ? void 0 : u[e]
        }
        ), p = Object.prototype, f = p.hasOwnProperty, g = p.toString, m = l.Symbol, h = m ? m.toStringTag : void 0, v = m ? m.prototype : void 0, w = v ? v.toString : void 0, _ = {
            escape: /<%-([\s\S]+?)%>/g,
            evaluate: /<%([\s\S]+?)%>/g,
            interpolate: r,
            variable: "",
            imports: {
                _: {
                    escape: function(e) {
                        return (e = k(e)) && a.test(e) ? e.replace(o, d) : e
                    }
                }
            }
        };
        function y(e) {
            return null == e ? void 0 === e ? "[object Undefined]" : "[object Null]" : h && h in Object(e) ? function(e) {
                var t = f.call(e, h)
                  , n = e[h];
                try {
                    e[h] = void 0;
                    var i = !0
                } catch (e) {}
                var r = g.call(e);
                i && (t ? e[h] = n : delete e[h]);
                return r
            }(e) : function(e) {
                return g.call(e)
            }(e)
        }
        function b(e) {
            if ("string" == typeof e)
                return e;
            if (x(e))
                return function(e, t) {
                    for (var n = -1, i = null == e ? 0 : e.length, r = Array(i); ++n < i; )
                        r[n] = t(e[n], n, e);
                    return r
                }(e, b) + "";
            if (function(e) {
                return "symbol" == (0,
                i.default)(e) || function(e) {
                    return null != e && "object" == (0,
                    i.default)(e)
                }(e) && "[object Symbol]" == y(e)
            }(e))
                return w ? w.call(e) : "";
            var t = e + "";
            return "0" == t && 1 / e == -1 / 0 ? "-0" : t
        }
        var x = Array.isArray;
        function k(e) {
            return null == e ? "" : b(e)
        }
        e.exports = _
    }
    ).call(this, n(13))
}
, function(e, t, n) {
    "use strict";
    var i = {
        default: {
            isOK: function(e) {
                return -1 != (e.err_msg + "").indexOf(":ok") || "0" == e.result + ""
            }
        },
        getInstallState: {
            isOK: function(e) {
                return -1 != (e.err_msg + "").indexOf(":yes")
            }
        },
        operateGameCenterMsg: {
            isOK: function(e) {
                return null != e.result || "err_msg"in e && -1 != (e.err_msg + "").indexOf(":ok")
            }
        }
    };
    e.exports = {
        isOK: function(e, t) {
            return e in i ? i[e].isOK(t) : i.default.isOK(t)
        }
    }
}
, function(e, t, n) {
    "use strict";
    var i, r, o = n(6), a = n(0), s = n(1);
    s.isCSR ? e.exports = {
        alert: function() {},
        closeAlert: function() {}
    } : (window,
    document,
    i = "yes" === window.__wxjs_is_wkwebview || window.__wxjs_is_wkwebview || "yes" === a.window.__wxjs_is_wkwebview || a.window.__wxjs_is_wkwebview || -1 != a.window.navigator.userAgent.indexOf("WindowsWechat"),
    r = ['<div class="wgui-alert-dialog {titleClass} {singleLineClass} {customClass}">', '    <div class="wgui-alert-dialog__mask"></div>', '    <div class="wgui-alert-dialog__main">', '        <div class="wgui-alert-dialog__header">', '            <div class="wgui-alert-dialog__title">', "                {title}", "            </div>", "        </div>", '        <div class="wgui-alert-dialog__body">', '            <div class="wgui-alert-dialog__content {isLeftClass} {isSmallClass}" style="{appendStyle}" >', "                {content}", "            </div>", "        </div>", '        <div class="wgui-alert-dialog__footer">', "            \x3c!--底部按钮支持 1 & 2 个数量--\x3e", "            \x3c!--添加 wgui-alert-dialog__btn_current 高亮--\x3e", '            <a href="javascript:;" class="wgui-alert-dialog__btn"  id="close_{gid}" style="display:{btnStyle}">{closeTxt}</a>', '            <a href="javascript:;" class="wgui-alert-dialog__btn wgui-alert-dialog__btn_current" id="confirmTxt_{gid}">{confirmTxt}</a>', "        </div>", "    </div>", "</div>"],
    function(t) {
        function n(e, t, n) {
            e.addEventListener ? e.addEventListener(t, n, !1) : e.attachEvent ? e.attachEvent("on" + t, n) : e["on" + t] = n
        }
        var a = []
          , c = function() {
            var e = a.pop();
            e && (i ? (e.confirmObj.removeEventListener("click", e.confirmHander, !1),
            e.closeObj.removeEventListener("click", e.closeHander, !1)) : (e.confirmObj.removeEventListener("touchend", e.confirmHander, !1),
            e.closeObj.removeEventListener("touchend", e.closeHander, !1)),
            e.confirmObj = null,
            e.closeObj = null,
            document.body.removeChild(document.getElementById(e.name)))
        };
        t.alert = function(e, t) {
            t = t || {};
            var l = {
                name: "name_" + (new Date).getTime(),
                icon: "",
                alertStr: "",
                title: "",
                content: "",
                noticeTxt: "",
                confirmTxt: "确定",
                isLeft: !1,
                confirmCb: function() {},
                closeTxt: "取消",
                closeCb: function() {},
                openCb: function() {},
                calller: window,
                closeAfterClick: !0,
                style: "oneBtn",
                zoom: !1,
                needScroll: !1,
                isSmallClass: !1,
                isContentDividedIntoUL: !1,
                isSingleLine: !0,
                customClass: ""
            };
            for (var u in l)
                u in t || (t[u] = l[u]);
            if (0 != function(e) {
                if (!document.getElementById("new_dialog_alert")) {
                    var t = document.createElement("style");
                    t.setAttribute("type", "text/css"),
                    t.setAttribute("id", "new_dialog_alert"),
                    t.innerHTML = '\n    .pagination {\n        display: inline-block;\n        padding-left: 0;\n        margin: 20px 0;\n        border-radius: 4px;\n    }\n\n    .pagination li {\n        display: inline;\n    }\n\n    .wgui-alert-dialog__main {\n        position: fixed;\n        top: 50%;\n        left: 50%;\n        z-index: 100003;\n        min-width: 320px;\n        max-width: 330px;\n        background-color: #fafafc;\n        color: #000;\n        text-align: center;\n        font-size: 16px;\n        border-radius: 8px;\n        overflow: hidden;\n        background-clip: padding-box;\n        -webkit-transform: translate(-50%,-50%);\n        -ms-transform: translate(-50%,-50%);\n        transform: translate(-50%,-50%)\n    }\n    .wg_dark_mode .wgui-alert-dialog__main {\n        background-color: #232323;\n        color: rgba(255,255,255,0.8);\n    }\n\n    .wgui-alert-dialog__mask {\n        position: fixed;\n        top: 0;\n        left: 0;\n        z-index: 100003;\n        width: 100%;\n        height: 100%;\n        background: rgba(0,0,0,.6)!important;\n        filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr="#99000000",endcolorstr="#99000000")\n    }\n\n    .wgui-alert-dialog__header {\n        padding: 20px 20px 0\n    }\n\n    .wgui-alert-dialog__title {\n        margin-bottom: 10px;\n        font-size: 20px;\n        color: #353535;\n        font-family: PingFangSC-Medium;\n        line-height: 20px;\n        margin-top: 12px;\n    }\n    .wg_dark_mode .wgui-alert-dialog__title {\n        color: rgba(255,255,255,0.8);\n    }\n\n    .wgui-alert-dialog__body {\n        overflow: hidden\n    }\n\n    .wgui-alert-dialog__content {\n        box-sizing: border-box;\n        margin-bottom: 20px;\n        padding: 12px 24px;\n        width: 100%;\n        line-height: 24px;\n        font-size: 17px;\n        letter-spacing: -0.22px;\n        text-align: center;\n        opacity: 0.5;\n        font-family: PingFangSC-Regular;\n        color: #000000;\n    }\n    .wg_dark_mode .wgui-alert-dialog__content {\n        opacity: 1;\n        color: rgba(255,255,255,0.5);\n    }\n\n    .wgui-alert-dialog__content_left {\n        text-align: left\n    }\n\n    .wgui-alert-dialog__footer {\n        position: relative;\n        display: -webkit-box\n    }\n\n    .wgui-alert-dialog__footer:after {\n        position: absolute;\n        top: 0;\n        left: 0;\n        width: 100%;\n        height: 1px;\n        border-top: 1px solid #d5d5d6;\n        content: " ";\n        -webkit-transform: scaleY(.5);\n        -ms-transform: scaleY(.5);\n        transform: scaleY(.5);\n        -webkit-transform-origin: 0 0;\n        -ms-transform-origin: 0 0;\n        transform-origin: 0 0\n    }\n    .wg_dark_mode .wgui-alert-dialog__footer:after {\n        border-top-color: rgba(255,255,255,0.05);\n    }\n\n    .wgui-alert-dialog__btn {\n        position: relative;\n        display: block;\n        width: 0;\n        height: 56px;\n        color: #353535;\n        text-decoration: none;\n        line-height: 56px;\n        font-family: PingFangSC-Medium;\n        font-size: 17px;\n        letter-spacing: 1px;\n        text-align: center;\n        -webkit-box-flex: 1\n    }\n    .wg_dark_mode .wgui-alert-dialog__btn {\n        color: rgba(255,255,255,0.8);\n    }\n\n    .wgui-alert-dialog__btn:after {\n        position: absolute;\n        top: 0;\n        left: 0;\n        width: 1px;\n        height: 100%;\n        border-left: 1px solid #d5d5d6;\n        content: " ";\n        -webkit-transform: scaleX(.5);\n        -ms-transform: scaleX(.5);\n        transform: scaleX(.5);\n        -webkit-transform-origin: 0 0;\n        -ms-transform-origin: 0 0;\n        transform-origin: 0 0\n    }\n    .wg_dark_mode .wgui-alert-dialog__btn:after {\n        border-left-color: rgba(255,255,255,0.05);\n    }\n\n    .wgui-alert-dialog__btn:first-child:after {\n        display: none\n    }\n\n    .wgui-alert-dialog__btn:active {\n        background-color: #f2f2f2;\n    }\n    .wg_dark_mode .wgui-alert-dialog__btn:active {\n        background-color: #2f2f2f;\n    }\n\n    .wgui-alert-dialog__btn_current {\n        color: #576B95;\n    }\n    .wg_dark_mode .wgui-alert-dialog__btn_current {\n        color: #7d90a9;\n    }\n\n    .wgui-alert-dialog__captcha-box {\n        margin-bottom: 10px;\n        text-align: center\n    }\n\n    .wgui-alert-dialog__captcha-img {\n        display: block;\n        margin: 0 auto 15px;\n        width: 140px;\n        height: 40px\n    }\n\n    .wgui-alert-dialog__captcha-input {\n        margin-bottom: 10px;\n        height: 39px;\n        border: 1px solid #dfdfdd;\n        text-align: center;\n        line-height: 39px\n    }\n\n    .wgui-alert-dialog__captcha-tips {\n        padding: 0 10px;\n        color: #bb0b05;\n        font-size: 14px\n    }\n\n    .wgui-alert-dialog_without-title .wgui-alert-dialog__title {\n        display: none\n    }\n\n    .wgui-alert-dialog_without-title .wgui-alert-dialog__content {\n        color: #000;\n        opacity: 0.9;\n        font-family: PingFangSC-Medium;\n    }\n    .wg_dark_mode .wgui-alert-dialog_without-title .wgui-alert-dialog__content {\n        color: rgba(255,255,255,0.8);\n        opacity: 1;\n        font-family: PingFangSC-Medium;\n    }\n\n    .wgui-alert-dialog_single-line .wgui-alert-dialog__content {\n        color: #000;\n        opacity: 0.5;\n    }\n    .wg_dark_mode .wgui-alert-dialog_single-line .wgui-alert-dialog__content {\n        color: rgba(255,255,255,0.5);\n        opacity: 1;\n    }\n\n    .wgui-alert-dialog_captcha .wgui-alert-dialog__title {\n        font-size: 18px;\n        margin-bottom: 10px\n    }\n    ',
                    document.getElementsByTagName("head")[0].appendChild(t)
                }
                return !0
            }()) {
                if (t.alertStr = e || t.alertStr,
                t.isContentDividedIntoUL) {
                    var d = t.alertStr.replace(/(^|\n)\d\./g, "");
                    t.content = d.replace(/[^\n]+/g, (function(e, t) {
                        return "\n" === e ? "" : "<li>" + e + "</li>"
                    }
                    )),
                    t.content = "<ul>" + t.content + "</ul>"
                } else
                    t.content = (t.alertStr + "").replace(/\n/g, "<br/>");
                if (t.singleLineClass = "",
                t.code && (t.content += '<span style="color: rgba(128,128,128,0.1);font-size: 0.6em;margin-top: -0.3em;display: block;position: absolute;bottom: 4.2em;right: 3px;">' + t.code + "</span>"),
                t.title = t.title || t.noticeTxt,
                t.titleClass = void 0 !== t.title && t.title.length > 0 ? "" : "wgui-alert-dialog_without-title",
                t.style in {
                    oneBtn: 1,
                    twoBtn: 1
                }) {
                    t.btnStyle = "oneBtn" == t.style ? "none" : "",
                    t.isLeftClass = !0 === t.isLeft ? "wgui-alert-dialog__content_left" : "",
                    t.isSmallClass = !0 === t.isSmallClass ? "wgui-alert-dialog__content_small" : "",
                    t.isContentDividedIntoUL = !0 === t.isContentDividedIntoUL,
                    t.appendStyle = t.needScroll ? "max-height: 270px; overflow-y: scroll; text-align: left; word-break: break-word" : "";
                    var p, f, g = document.createElement("div"), m = (t.name,
                    {});
                    s.isDarkMode && g.classList.add("wg_dark_mode"),
                    f = r,
                    p = "__alert__" + (new Date).getTime() + "__" + parseInt(100 * Math.random()),
                    g.id = p,
                    t.gid = p;
                    var h = f.join("").replace(/\{(\w+)\}/g, (function(e, n) {
                        return void 0 !== t[n] ? t[n].toString() : e
                    }
                    ));
                    t.zoom && window.Bigger && setTimeout((function() {
                        Bigger(g, 320, !0)
                    }
                    ), 30),
                    o.insertHTMLFilterXss(h, g, !0),
                    document.body.appendChild(g);
                    var v = {
                        iconObj: document.getElementById("icon_" + p),
                        alertObj: document.getElementById("alertStr_" + p),
                        confirmObj: document.getElementById("confirmTxt_" + p),
                        closeObj: document.getElementById("close_" + p)
                    };
                    0 == t.showClose && v.closeObj && (v.closeObj.style.display = "none"),
                    0 == t.showIcon && v.iconObj && (v.iconObj.style.display = "none"),
                    m.confirmHander = function(e) {
                        t.confirmCb.call(t.calller),
                        t.closeAfterClick && c(),
                        e.preventDefault(),
                        e.stopPropagation()
                    }
                    ,
                    m.closeHander = function(e) {
                        t.closeCb.call(t.calller),
                        t.closeAfterClick && c(),
                        e.preventDefault(),
                        e.stopPropagation()
                    }
                    ,
                    m.openHander = function(e) {
                        t.openCb.call(t.calller),
                        e && e.preventDefault(),
                        e && e.stopPropagation()
                    }
                    ,
                    m.name = p,
                    m.confirmObj = v.confirmObj,
                    m.confirmCb = t.confirmCb,
                    m.closeObj = v.closeObj,
                    m.closeCb = t.closeCb,
                    i ? (n(v.confirmObj, "click", m.confirmHander),
                    n(v.closeObj, "click", m.closeHander)) : (n(v.confirmObj, "touchend", m.confirmHander),
                    n(v.closeObj, "touchend", m.closeHander)),
                    n(v.confirmObj, "click", m.confirmHander),
                    n(v.closeObj, "click", m.closeHander),
                    a.push(m),
                    m.openHander.call(t.calller),
                    g.firstElementChild;
                    var w = document.querySelector(".wgui-alert-dialog__main");
                    if (w) {
                        var _ = document.documentElement.clientWidth;
                        _ < 360 && (w.style.minWidth = _ - 40 + "px",
                        w.style.maxWidth = _ - 20 + "px")
                    }
                } else
                    alert("style invalid")
            }
        }
        ,
        t.closeAlert = c,
        e.exports = t
    }({}))
}
, function(e, t, n) {
    "use strict";
    !function(t, i) {
        var r = n(10)
          , o = []
          , a = !1;
        window.logInfo && window.logInfo.bind(window);
        function s(e, t) {
            var n = parseInt(e || 0)
              , i = e + "";
            if (t.range) {
                if (parseInt(t.range[0]) > n && parseInt(t.range[1]) < n)
                    return !1
            } else if (t.list) {
                if (-1 === t.list.indexOf(i))
                    return !1
            } else if (t !== i)
                return !1;
            return !0
        }
        function c(e, t) {
            for (var n in t)
                if ("GameID" === t[n] && !e.sGameId)
                    return !1;
            return !0
        }
        e.exports = function(e) {
            try {
                return e.iSceneId = (e.iSceneId || 0) + "",
                e.iUIArea = (e.iUIArea || 0) + "",
                e.iPositionId = (e.iPositionId || 0) + "",
                e.iActionId = (e.iActionId || 0) + "",
                e.iOpType = (e.iOpType || 0) + "",
                !a && e.iActionId && 1 === e.iActionId && (setTimeout((function() {
                    !function() {
                        var e = window.RPT_DATA_TO_CHECK || []
                          , t = [];
                        for (var n in e)
                            if (e[n][5] + "" == "1") {
                                var i = !1;
                                for (var a in o)
                                    if (o[n][0] === e[n].iSceneId && o[n][1] === e[n].iUIArea && o[n][2] === e[n].iPositionId && o[n][3] === e[n].iActionId && o[n][4] === e[n].iOpType) {
                                        i = !0;
                                        break
                                    }
                                i || t.push(e[n])
                            }
                        if (t.length > 0)
                            return function(e) {
                                var t = [];
                                for (var n in e)
                                    t.push({
                                        scene_id: parseInt(e[n][0]),
                                        ui_area: parseInt(e[n][1]),
                                        position_id: parseInt(e[n][2]),
                                        action_id_list: [parseInt(e[n][3])],
                                        op_type_list: [parseInt(e[n][4])],
                                        uniq: !0,
                                        is_need: !0
                                    });
                                var i = {
                                    method: "POST",
                                    leak: {
                                        scene_id: 24,
                                        url: encodeURIComponent(location.href.split("#")[0].replace(/(&|\?)(uin|pass_ticket|key)=[^&]+/g, "")),
                                        item_list: t
                                    }
                                };
                                r("/cgi-bin/comm/reportlogerror", JSON.stringify(i), (function(e) {}
                                ))
                            }(t),
                            !1
                    }()
                }
                ), 5e3),
                a = !0),
                function(e) {
                    var t = window.RPT_DATA_TO_CHECK || [];
                    if (0 === t.length)
                        return !0;
                    for (var n = 0, i = t.length; n < i; n++) {
                        if (parseInt(e.iActionId) >= 1e3)
                            return !0;
                        if (t[n][0] === e.iUIArea + "") {
                            if (!s(e.iPositionId, t[n][1]))
                                continue;
                            if (-1 === [2, 22, 23, 40, 44, 45, 47, 54, 55, 58, 59, 71, 74, 75, 76, 77, 78, 79].indexOf(parseInt(e.iActionId)) && !s(e.iActionId, t[n][2]))
                                continue;
                            if (!c(e, t[n][6]))
                                continue;
                            return e.uniq = "1" === t[n][4],
                            e.isNeed = "1" === t[n][5],
                            !0
                        }
                    }
                    return !1
                }(e) ? function(e) {
                    for (var t = 0, n = o.length; t < n; t++)
                        if (e.uniq + "" == "1" && o[t][0] === e.iSceneId && o[t][1] === e.iUIArea && o[t][2] === e.iPositionId && o[t][3] === e.iActionId && o[t][4] === e.iOpType)
                            return !0;
                    return !1
                }(e) ? (console.log("11332 checkRepeat fail: ", e),
                2) : (function(e) {
                    var t = [e.iSceneId, e.iUIArea, e.iPositionId, e.iActionId, e.iOpType, e.uniq, e.isNeed];
                    o.push(t)
                }(e),
                0) : (console.log("11332 checkIllegal fail: ", e),
                1)
            } catch (e) {
                return 99
            }
        }
    }(window, document)
}
, function(e, t, n) {
    "use strict";
    var i = n(3).getQueryStr;
    e.exports = {
        getMsdkLogin: function() {
            for (var e = ["sig", "timestamp", "algorithm", "version", "encode", "msdkEncodeParam", "appid"], t = {}, n = 0, r = e.length; n < r; n++) {
                var o = i(e[n]);
                t[e[n]] = o || ""
            }
            return t
        }
    }
}
, function(e, t, n) {
    "use strict";
    Object.defineProperty(t, "__esModule", {
        value: !0
    }),
    t.default = function(e, t) {
        for (var n = [], i = {}, r = 0; r < t.length; r++) {
            var o = t[r]
              , a = o[0]
              , s = o[1]
              , c = o[2]
              , l = o[3]
              , u = {
                id: e + ":" + r,
                css: s,
                media: c,
                sourceMap: l
            };
            i[a] ? i[a].parts.push(u) : n.push(i[a] = {
                id: a,
                parts: [u]
            })
        }
        return n
    }
}
, function(e, t, n) {
    "use strict";
    e.exports = function(e) {
        var t = [];
        return t.toString = function() {
            return this.map((function(t) {
                var n = function(e, t) {
                    var n = e[1] || ""
                      , i = e[3];
                    if (!i)
                        return n;
                    if (t && "function" == typeof btoa) {
                        var r = (a = i,
                        "/*# sourceMappingURL=data:application/json;charset=utf-8;base64," + btoa(unescape(encodeURIComponent(JSON.stringify(a)))) + " */")
                          , o = i.sources.map((function(e) {
                            return "/*# sourceURL=" + i.sourceRoot + e + " */"
                        }
                        ));
                        return [n].concat(o).concat([r]).join("\n")
                    }
                    var a;
                    return [n].join("\n")
                }(t, e);
                return t[2] ? "@media " + t[2] + "{" + n + "}" : n
            }
            )).join("")
        }
        ,
        t.i = function(e, n) {
            "string" == typeof e && (e = [[null, e, ""]]);
            for (var i = {}, r = 0; r < this.length; r++) {
                var o = this[r][0];
                "number" == typeof o && (i[o] = !0)
            }
            for (r = 0; r < e.length; r++) {
                var a = e[r];
                "number" == typeof a[0] && i[a[0]] || (n && !a[2] ? a[2] = n : n && (a[2] = "(" + a[2] + ") and (" + n + ")"),
                t.push(a))
            }
        }
        ,
        t
    }
}
, function(e, t, n) {
    "use strict";
    n.r(t),
    n.d(t, "default", (function() {
        return g
    }
    ));
    var i = n(35)
      , r = n.n(i)
      , o = "undefined" != typeof document;
    if ("undefined" != typeof DEBUG && DEBUG && !o)
        throw new Error("vue-style-loader cannot be used in a non-browser environment. Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.");
    var a = {}
      , s = o && (document.head || document.getElementsByTagName("head")[0])
      , c = null
      , l = 0
      , u = !1
      , d = function() {}
      , p = null
      , f = "undefined" != typeof navigator && /msie [6-9]\b/.test(navigator.userAgent.toLowerCase());
    function g(e, t, n, i) {
        u = n,
        p = i || {};
        var o = r()(e, t);
        return m(o),
        function(t) {
            for (var n = [], i = 0; i < o.length; i++) {
                var s = o[i];
                (c = a[s.id]).refs--,
                n.push(c)
            }
            t ? m(o = r()(e, t)) : o = [];
            for (i = 0; i < n.length; i++) {
                var c;
                if (0 === (c = n[i]).refs) {
                    for (var l = 0; l < c.parts.length; l++)
                        c.parts[l]();
                    delete a[c.id]
                }
            }
        }
    }
    function m(e) {
        for (var t = 0; t < e.length; t++) {
            var n = e[t]
              , i = a[n.id];
            if (i) {
                i.refs++;
                for (var r = 0; r < i.parts.length; r++)
                    i.parts[r](n.parts[r]);
                for (; r < n.parts.length; r++)
                    i.parts.push(v(n.parts[r]));
                i.parts.length > n.parts.length && (i.parts.length = n.parts.length)
            } else {
                var o = [];
                for (r = 0; r < n.parts.length; r++)
                    o.push(v(n.parts[r]));
                a[n.id] = {
                    id: n.id,
                    refs: 1,
                    parts: o
                }
            }
        }
    }
    function h() {
        var e = document.createElement("style");
        return e.type = "text/css",
        s.appendChild(e),
        e
    }
    function v(e) {
        var t, n, i = document.querySelector('style[data-vue-ssr-id~="' + e.id + '"]');
        if (i) {
            if (u)
                return d;
            i.parentNode.removeChild(i)
        }
        if (f) {
            var r = l++;
            i = c || (c = h()),
            t = y.bind(null, i, r, !1),
            n = y.bind(null, i, r, !0)
        } else
            i = h(),
            t = b.bind(null, i),
            n = function() {
                i.parentNode.removeChild(i)
            }
            ;
        return t(e),
        function(i) {
            if (i) {
                if (i.css === e.css && i.media === e.media && i.sourceMap === e.sourceMap)
                    return;
                t(e = i)
            } else
                n()
        }
    }
    var w, _ = (w = [],
    function(e, t) {
        return w[e] = t,
        w.filter(Boolean).join("\n")
    }
    );
    function y(e, t, n, i) {
        var r = n ? "" : i.css;
        if (e.styleSheet)
            e.styleSheet.cssText = _(t, r);
        else {
            var o = document.createTextNode(r)
              , a = e.childNodes;
            a[t] && e.removeChild(a[t]),
            a.length ? e.insertBefore(o, a[t]) : e.appendChild(o)
        }
    }
    function b(e, t) {
        var n = t.css
          , i = t.media
          , r = t.sourceMap;
        if (i && e.setAttribute("media", i),
        p.ssrId && e.setAttribute("data-vue-ssr-id", t.id),
        r && (n += "\n/*# sourceURL=" + r.sources[0] + " */",
        n += "\n/*# sourceMappingURL=data:application/json;base64," + btoa(unescape(encodeURIComponent(JSON.stringify(r)))) + " */"),
        e.styleSheet)
            e.styleSheet.cssText = n;
        else {
            for (; e.firstChild; )
                e.removeChild(e.firstChild);
            e.appendChild(document.createTextNode(n))
        }
    }
}
, function(e, t, n) {
    "use strict";
    var i = n(7);
    n(39),
    n(40);
    var r = n(8)
      , o = n(1)
      , a = o.isWechat;
    if (!o.isCSR) {
        var s = n(0).window.WXGAME || {};
        r = s.baseQualityReport || r
    }
    var c = Math.random() < .005;
    e.exports = {
        setKeyValue: function(e, t) {
            var n = r.StartLogic(r.LOGIC_CONST.TypeTextEnum.CACHEKEY, "setKeyValue", {
                key: e
            }, i);
            try {
                localStorage.setItem(e, t),
                c && n.EndLogic({
                    errcode: "set_ls_success",
                    length: t.length
                })
            } catch (i) {
                -1 != i.toString().indexOf("QuotaExceeded") ? (localStorage.clear(),
                localStorage.setItem(e, t),
                c && n.EndLogic({
                    errcode: "set_ls_quota_exceeded",
                    length: t.length
                })) : c && n.EndLogic({
                    errcode: "set_ls_fail",
                    err_msg: String(i),
                    length: t.length
                })
            }
            a && i.setGameData({
                key: e,
                value: t
            }, (function(i) {
                setTimeout((function() {
                    try {
                        logInfo("wxBridge.setGameData ".concat(e, ":"), i),
                        i.err_msg.indexOf(":ok") ? c && n.EndLogic({
                            errcode: "set_native_success",
                            length: t.length
                        }) : c && n.EndLogic({
                            errcode: "set_native_fail",
                            err_msg: i.err_msg,
                            length: t.length
                        })
                    } catch (e) {
                        console.error(e),
                        Promise.reject(e)
                    }
                }
                ), 100)
            }
            ))
        },
        getKeyValue: function(e, t) {
            var n = r.StartLogic(r.LOGIC_CONST.TypeTextEnum.CACHEKEY, "getKeyValue", {
                key: e
            }, i)
              , o = localStorage.getItem(e);
            null === o && a ? i.getGameData({
                key: e
            }, (function(i) {
                setTimeout((function() {
                    try {
                        logInfo("wxBridge.getGameData ".concat(e, ":"), i)
                    } catch (e) {
                        console.error(e),
                        Promise.reject(e)
                    }
                }
                ), 100),
                -1 !== i.err_msg.indexOf(":ok") ? (t(i.value, {
                    from: "wxbridge"
                }),
                c && (i.value ? n.EndLogic({
                    errcode: "get_native_success",
                    length: i.value.length
                }) : n.EndLogic({
                    errcode: "no_cache",
                    length: 0
                }))) : (t(null, {
                    from: "wxbridge"
                }),
                c && n.EndLogic({
                    errcode: "get_native_fail",
                    err_msg: i.err_msg,
                    length: 0
                }))
            }
            )) : (t(o, {
                from: "localstorage"
            }),
            c && n.EndLogic({
                errcode: "get_ls_success",
                length: o.length
            }))
        },
        delKeyValue: function(e) {
            localStorage.removeItem(e),
            i.invoke("clearGameData", {
                keys: [e]
            }, (function(e) {
                console.log(JSON.stringify(e))
            }
            ))
        }
    }
}
, function(e, t, n) {
    "use strict";
    var i = n(5);
    i.getGameData = i.getGameData || function(e, t) {
        i.invoke("getGameData", e, t)
    }
    ,
    e.exports = i
}
, function(e, t, n) {
    "use strict";
    var i = n(5);
    i.setGameData = i.setGameData || function(e, t) {
        e.expireTime && (e.expireTime += ""),
        i.invoke("setGameData", e, t)
    }
    ,
    e.exports = i
}
, function(e, t, n) {
    "use strict";
    e.exports = function(e, t, n) {
        var i, r, o, a;
        return n = n || {},
        arguments.length > 1 && "[object Object]" !== String(t) ? (null == t && (n.expires = -1),
        "number" == typeof n.expires && (i = 24 * n.expires * 60 * 60 * 1e3,
        (r = n.expires = new Date).setTime(r.getTime() + i)),
        t = String(t),
        document.cookie = [encodeURIComponent(e), "=", n.raw ? t : encodeURIComponent(t), n.expires ? "; expires=" + n.expires.toUTCString() : "", n.path ? "; path=" + n.path : "", n.domain ? "; domain=" + n.domain : "", n.secure ? "; secure" : ""].join("")) : (a = (n = t || {}).raw ? function(e) {
            return e
        }
        : decodeURIComponent,
        (o = new RegExp("(?:^|; )" + encodeURIComponent(e) + "=([^;]*)").exec(document.cookie)) ? a(o[1]) : null)
    }
}
, function(e, t, n) {
    "use strict";
    var i = n(1);
    if (i.isCSR)
        e.exports = {};
    else {
        var r = n(61)
          , o = window;
        o.WxGameJsCoreBridge = o.WxGameJsCoreBridge || {},
        r(),
        WxGameJsCoreBridge.preRender = function(e) {
            return new Promise((function(t, n) {
                "string" == typeof e.htmlUrl && e.htmlUrl.length > 0 ? (e.isDarkMode = i.isDarkMode,
                WxGameJsCoreBridge.postMessage("preRender", e, (function(e) {
                    t(e)
                }
                ))) : (n(),
                console.error("preRender必须传htmlUrl"))
            }
            ))
        }
        ,
        WxGameJsCoreBridge.openUrl = function(e) {
            return new Promise((function(t, n) {
                WxGameJsCoreBridge.postMessage("openUrl", e, (function(e) {
                    t(e)
                }
                ))
            }
            ))
        }
        ,
        WxGameJsCoreBridge.hadJscoreInited = function() {
            return "undefined" != typeof __jscore_state__ && "inited" === __jscore_state__ && window === top
        }
        ,
        e.exports = WxGameJsCoreBridge
    }
}
, function(e, t, n) {
    "use strict";
    var i = n(7)
      , r = n(15)
      , o = n(9)
      , a = n(1)
      , s = n(8);
    function c() {
        return Date.now()
    }
    function l() {
        this.collectJsbridgeReadyTime(),
        this.collectGetUinKeyTime(),
        this.collectVerifyTime()
    }
    i = n(76),
    window.Collector = {
        35: 0,
        36: 0,
        37: 0,
        46: "",
        47: 0,
        38: 0,
        39: 0,
        40: 0,
        41: 0,
        43: 0,
        44: 0
    },
    l.prototype.collectJsbridgeReadyTime = function() {
        var e = this
          , t = c();
        i.callAfterReady((function() {
            var n = c();
            e.reportSingle(35, n - t)
        }
        ))
    }
    ,
    l.prototype.collectGetUinKeyTime = function() {
        var e = this
          , t = c();
        i.getUinKey((function(n) {
            var i = c();
            e.reportSingle(37, i - t)
        }
        ))
    }
    ,
    l.prototype.collectVerifyTime = function() {
        var e = this
          , t = c();
        i.verifyJsapi(i.apis, (function() {
            var n = c();
            e.reportSingle(36, n - t)
        }
        ))
    }
    ,
    l.prototype.report = function() {
        a.canIReport() && i.reportGameWeb({
            type: "1",
            isReportNow: "1",
            data: window.Collector
        }, (function(e) {
            var t = !1;
            a.isiOS ? t = "0" != e.result : a.isAndroid && (t = -1 == e.err_msg.indexOf(":ok")),
            t && o.logError("doReport", "jsapi reportGameWeb call fail", e)
        }
        ))
    }
    ,
    l.prototype.reportSingle = function(e, t) {
        t > 0 && t < 3e4 && (window.Collector[e] = t,
        this.report())
    }
    ,
    l.prototype.reportWhiteScreen = function() {
        var e = this
          , t = window.Collector[47] || c()
          , n = function() {
            e.reportQueue = new r,
            e.reportQueue.setSync(),
            e.reportQueue.run((function() {
                var t, n, i = this;
                t = function(t) {
                    e.reportQueue.collected = t,
                    i.done()
                }
                ,
                (n = new r).setSync(),
                n.run((function() {
                    var e = this;
                    setTimeout((function() {
                        if (window.performance || window.msPerformance || window.webkitPerformance) {
                            try {
                                window.Collector[46] = JSON.stringify({
                                    trueUrl: encodeURIComponent(window.location.href.replace(location.search, "").replace(location.hash, ""))
                                }),
                                window.Collector[38] = timing.domainLookupEnd - timing.domainLookupStart,
                                window.Collector[39] = timing.connectEnd - timing.connectStart,
                                window.Collector[40] = timing.responseEnd - timing.requestStart,
                                window.Collector[41] = timing.domInteractive - timing.domLoading,
                                window.Collector[43] = timing.domContentLoadedEventEnd - timing.responseEnd,
                                window.Collector[44] = timing.domComplete - timing.responseEnd
                            } catch (e) {}
                            e.done(!0)
                        } else
                            e.done(!1)
                    }
                    ), 1)
                }
                )),
                n.run((function(e) {
                    e || o.logError("collectMoreData", "did not get full quality data"),
                    t(e)
                }
                ))
            }
            )),
            e.reportQueue.run((function() {
                var n = s.StartRunner("reportWhiteScreen", {}, null);
                try {
                    e.reportQueue.collected ? (window.Collector[47] = t,
                    e.report()) : n.EndLogic({
                        err_msg: "other data is not full"
                    })
                } catch (e) {
                    n.EndLogic({
                        err_msg: "try catch error"
                    })
                }
            }
            ))
        };
        "complete" === document.readyState ? n() : window.addEventListener("load", (function() {
            n()
        }
        ), !1)
    }
    ,
    e.exports = new l
}
, function(e, t, n) {
    "use strict";
    var i, r = n(6), o = n(1);
    o.isCSR ? e.exports = {
        showLoading: function() {},
        hideLoading: function() {},
        showTips: function() {}
    } : (window,
    document,
    i = {
        showLoading: function(e, t) {
            var n = this;
            if (0 != function(e) {
                if (!document.getElementById("uiutil_custom_style")) {
                    var t = document.createElement("style");
                    t.setAttribute("type", "text/css"),
                    t.setAttribute("id", "uiutil_custom_style"),
                    t.innerHTML = "\n                .wgui-message{position:fixed;top:45%;left:50%;z-index:100003;box-sizing:border-box;padding:10px;min-height:108px;height:108px;width:108px;background-color:rgba(0,0,0,.5);-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);border-radius:5px;background-clip:padding-box}\n                .wgui-message_loading .wgui-message__icon{width:56px;height:56px;margin-top: 3px;margin-bottom: -3px;background-image:url(https://wximg.qq.com/tmt/game/dist/img/modules/wui-message/message-icon-loading@2x.png);background-size:50px;-webkit-animation:loading 1s steps(12,end) infinite}\n                .wgui-message_success .wgui-message__icon{background-size:50px;width:56px;height:56px}\n                .wgui-message_fail .wgui-message__icon{background-size:50px;width:56px;height:56px}\n                .wgui-message_open{overflow:hidden;min-height:80px;width:190px;height:80px}\n                .wgui-message_open .wgui-message__content{min-height:60px}\n                .wgui-message_open .wgui-message__text{font-size:13px;margin-top:-10px;}\n                .wgui-message__content{display:-webkit-box;min-height:88px;width:100%;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}\n                .wgui-message__inner{text-align:center}.wgui-message__icon{display:inline-block;width:56px;height:56px}\n                .wgui-message__text{margin-top: 3px;color:#fff;font-size:13px;line-height: 18px;word-break:break-all;word-wrap:break-word;white-space:normal; color: rgba(255, 255, 255, 0.9);overflow: hidden;text-overflow: ellipsis;white-space: nowrap!important;max-width: 88px;}\n                .wgui-message__line-wrap{position:absolute;bottom:20px;left:0;width:100%;height:1px;background-color:hsla(0,0%,100%,.1)}\n                .wgui-message__line{position:absolute;top:-2px;left:-66px;width:67.5px;height:5px;background-image:url(https://wximg.qq.com/tmt/game/dist/img/modules/wui-message/message-line.png);background-size:67.5px 5px;-webkit-animation:move 1.5s linear infinite;animation:move 1.5s linear infinite}\n                @keyframes loading{0%{-webkit-transform:rotate3d(0,0,1,0deg);transform:rotate3d(0,0,1,0deg)}to{-webkit-transform:rotate3d(0,0,1,1turn);transform:rotate3d(0,0,1,1turn)}}\n                @-webkit-keyframes move{0%{-webkit-transform:translateX(0);transform:translateX(0)}to{-webkit-transform:translateX(250px);transform:translateX(250px)}}\n                @keyframes move{0%{-webkit-transform:translateX(0);transform:translateX(0)}to{-webkit-transform:translateX(250px);transform:translateX(250px)}}\n                .wgui-loadmore{display:-webkit-box;width:100%;height:56px;background-color:#f2f2f2;color:#b2b2b2;font-size:14px;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}\n                .wgui-loadmore__inner{padding:0 10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap!important;max-width:100%}.wgui-loadmore__icon-loading{display:inline-block;margin-top:-2px;margin-right:5px;width:16px;height:16px;background-image:url(https://wximg.qq.com/tmt/game/dist/img/modules/wui-loadmore/loadmore-icon-loading@2x.png);background-size:16px;vertical-align:middle;-webkit-animation:loading 1s steps(12,end) infinite;animation:loading 1s steps(12,end) infinite}\n                @-webkit-keyframes loading{0%{-webkit-transform:rotate3d(0,0,1,0deg)}to{-webkit-transform:rotate3d(0,0,1,1turn)}}\n                @keyframes loading{0%{-webkit-transform:rotate3d(0,0,1,0deg)}to{-webkit-transform:rotate3d(0,0,1,1turn)}}\n                .wg_dark_mode .wgui-message__text {\n                    color: rgba(255,255,255,0.8);\n                }\n                .icon_size{\n                    background-size: 38px !important;\n                    background-repeat: no-repeat;\n                    background-position: center !important\n                }\n                .wgui-message_success .wgui-message__icon{\n                    background-size: 50px !important;\n                    opacity: .9;\n                    background-image: url(https://res.wx.qq.com/wechatgame/product/cdn/moment/Fill36_baa48933.svg) !important;\n                    \n                }\n                .wgui-message_fail .wgui-message__icon{\n                    background-size: 50px !important;\n                    opacity: .9;\n                    background-image: url(https://res.wx.qq.com/wechatgame/product/cdn/moment/Rectangle392_498fc948.svg) !important;\n                }\n                .wgui-message_info .wgui-message__icon{\n                    background-image: url(https://res.wx.qq.com/wechatgame/product/cdn/moment/deb44b05.svg) !important;\n                }\n                ",
                    document.getElementsByTagName("head")[0].appendChild(t)
                }
                location.protocol;
                for (var n = document.getElementsByTagName("link"), i = !1, r = 0, o = n.length; r < o; r++) {
                    var a = n[r].getAttribute("href");
                    if (-1 != a.indexOf("wgui") || -1 != a.indexOf("wui")) {
                        i = !0;
                        break
                    }
                }
                return !1 === i && (i = !0),
                i
            }()) {
                (t = t || {
                    timeout: 0,
                    txt: "",
                    needIcon: !0,
                    type: "loading",
                    times: 1,
                    seconds: 1,
                    moreTip: ""
                }).txt = e || t.txt,
                t.needIconStyle = void 0 === t.needIcon || 1 == t.needIcon ? "" : "none",
                t.type = t.type || "loading",
                t.showBar = t.showBar || !1,
                t.moreTip = t.moreTip || "",
                t.times = t.times || 1,
                t.seconds = (t.timeout || 1e3) / 1e3,
                t.progressBarClass = "open" == t.type ? "" : "none",
                "open" == t.type && (t.needIconStyle = "none"),
                "" == t.moreTip ? t.moreTipClass = "wgui-d-n" : t.moreTipClass = "";
                var i = ['<div class="wgui-message wgui-message_{type}">', '    <div class="wgui-message__content">', '        <div class="wgui-message__inner">', '            <div class="icon_size wgui-message__icon " style="display:{needIconStyle}"></div>', t.txt ? '            <div class="wgui-message__text">{txt}</div>' : "", '            <div class="{moreTipClass}" style="font-size: 10px;color: #fff;line-height: 15px; margin: 3px 0;transform: scale(0.9)">{moreTip}</div>', "        </div>", "    </div>", '    <div class="wgui-message__line-wrap" style="display:{progressBarClass}">', '        <div class="wgui-message__line" style="-webkit-animation: move {seconds}s linear {times};animation: move {seconds}s linear {times};"></div>', "    </div>", "</div>"]
                  , a = "spinner_" + parseInt((new Date).getTime() / 864e5);
                n.spinnerDiv = document.getElementById(a),
                n.spinnerDiv || (n.spinnerDiv = document.createElement("div"),
                n.spinnerDiv.id = a,
                o.isDarkMode && n.spinnerDiv.classList.add("wg_dark_mode"),
                document.body.appendChild(n.spinnerDiv)),
                n.spinnerDiv.style.display = "block",
                r.insertHTMLFilterXss(i.join("").replace(/\{(\w+)\}/g, (function(e, n) {
                    return void 0 !== t[n] ? t[n].toString() : e
                }
                )), n.spinnerDiv, !0),
                t.timeout && parseInt(t.timeout) > 0 && setTimeout((function() {
                    n.hideLoading(),
                    t.hideCb && t.hideCb.call(window)
                }
                ), t.timeout),
                document.body.offsetHeight
            }
        },
        hideLoading: function() {
            this.spinnerDiv && (this.spinnerDiv.style.display = "none")
        },
        showTips: function(e, t) {
            var n = t || {
                timeout: 1e3
            };
            this.showLoading(e, n)
        }
    },
    e.exports = i)
}
, function(e, t, n) {
    "use strict";
    window,
    document,
    e.exports = function(e) {
        try {
            if (!window._expRptList_ || 0 === window._expRptList_.length)
                return {
                    exp_id: 0,
                    reason_id: 0
                };
            for (var t, n = window._expRptList_, i = 0, r = n.length; i < r; i++)
                if (!((t = n[i]).scene_id && t.scene_id + "" && t.scene_id + "" != e.iSceneId + "" || t.game_id && t.game_id + "" && t.game_id + "" != e.sGameId + "" || t.ui_area && t.ui_area + "" && t.ui_area + "" != e.iUIArea + "" || t.position_id && t.position_id + "" && t.position_id + "" != e.iPositionId + ""))
                    return {
                        exp_id: t.exp_id || 0,
                        reason_id: t.reason_id || 0
                    };
            return {
                exp_id: 0,
                reason_id: 0
            }
        } catch (e) {
            return {
                exp_id: 0,
                reason_id: 0
            }
        }
    }
}
, function(e, t, n) {
    "use strict";
    var i, r, o = n(22), a = n(1), s = n(0);
    function c(e, t, n) {
        e.addEventListener ? e.addEventListener(t, n, !1) : e.attachEvent ? e.attachEvent("on" + t, n) : e["on" + t] = n
    }
    function l(e) {
        try {
            if (s.window.hackIFrameEvent && !0 === s.window.hackIFrameEvent && s.window != window && /(iPhone|iPad|iPod|iOS)/i.test(s.window.navigator.userAgent) && e.changedTouches[0].clientY - s.document.body.scrollTop > s.window.innerHeight - s.window.document.getElementById("tab_box").clientHeight)
                return s.window.dealIosIFrameClickBug && s.window.dealIosIFrameClickBug(e),
                !0
        } catch (e) {}
        return !1
    }
    function u() {
        clearTimeout(i),
        i = null
    }
    function d(e, t) {
        var n = this
          , a = 0
          , s = 0
          , d = 0
          , p = 0
          , f = 0
          , g = 0;
        if (e) {
            var m = t instanceof Function && t;
            !(t.useTouch && !0 === t.useTouch) && r || !o.clientInfo.isIOS && !o.clientInfo.isAndroid ? c(e, "click", (function(e) {
                var i = e.target || e.srcElement;
                !0 !== l(e) && (t.isCurrentlyCbk ? (h(e),
                m ? m.call(n, e, i) : t && t.touchend && t.touchend.call(n, e, i)) : setTimeout((function() {
                    h(e),
                    m ? m.call(n, e, i) : t && t.touchend && t.touchend.call(n, e, i)
                }
                ), 0))
            }
            )) : (c(e, "touchstart", (function(e) {
                var i = e.target || e.srcElement;
                a = 0,
                s = 0,
                d = e.touches[0].pageY,
                f = e.touches[0].pageX,
                t && t.touchstart && t.touchstart.call(n, e, i)
            }
            )),
            c(e, "touchmove", (function(e) {
                var i = e.target || e.srcElement;
                p = e.touches[0].pageY,
                g = e.touches[0].pageX,
                a += Math.abs(p - d),
                s += Math.abs(g - f),
                d = p,
                f = g,
                t && t.touchmove && t.touchmove.call(n, e, i)
            }
            )),
            c(e, "touchend", (function(e) {
                if (0 == Math.abs(a) && 0 == Math.abs(s)) {
                    var o = e.target || e.srcElement;
                    u(),
                    i = setTimeout((function() {
                        h(e),
                        !0 !== l(e) && (m ? m.call(n, e, o) : t.touchend && t.touchend.call(n, e, o))
                    }
                    ), r ? 0 : 10)
                }
                e.stopPropagation()
            }
            )))
        }
        function h(e) {
            e.preventDefault(),
            e.stopPropagation()
        }
    }
    a.isCSR ? r = !1 : (r = "yes" === window.__wxjs_is_wkwebview || window.__wxjs_is_wkwebview || "yes" === s.window.__wxjs_is_wkwebview || s.window.__wxjs_is_wkwebview,
    window.addEventListener("scroll", u)),
    e.exports = {
        on: c,
        tap: d,
        click: d,
        addEvent: c
    }
}
, function(e, t, n) {
    "use strict";
    !function() {
        n(48),
        n(50);
        var e = {
            version: "1.1.0",
            desc: "浏览器特性检测"
        };
        e.GlobalConfig = n(51).default;
        var t = n(0);
        window.WXGAME = e,
        n(69),
        n(71),
        e.Mbase = n(3),
        e.UrlConfig = {
            GameWidgetEnable: e.Mbase.getQueryStr("gamewidgetenable"),
            ScrollReport: e.Mbase.getQueryStr("scrollreport")
        };
        var i = t.window.location.href
          , r = "";
        i.replace(/cgi\-bin\/(.*)\//, (function(e, t) {
            r = t
        }
        ));
        for (var o = [], a = !1, s = 0; s < o.length; s++)
            if (-1 != r.indexOf(o[s])) {
                a = !0;
                break
            }
        a && (e.UrlConfig.GameWidgetEnable = !1,
        e.UrlConfig.ScrollReport = !1),
        e.Env = n(1),
        e.performanceReport = n(43),
        n(77).fastAndroidJsapi(e),
        n(78).addOpenRateB(),
        e.WxBridge = n(7),
        e.baseQualityReport = n(8),
        e.baseQualityReport.StartRunner("commlib.context", {}).EndLogic({
            err_msg: {
                version: e.version
            }
        }),
        e.WxBridge.getUinKey((function(e) {}
        )),
        e.WxBridge.verifyJsapi(e.WxBridge.apis, (function() {}
        )),
        e.AppBtn = n(79),
        e.Badjs = n(98);
        var c = n(9);
        for (var l in c)
            window[l] = c[l];
        e.xhrCallCgi = n(10),
        e.Report11332 = {
            report: n(99).report,
            reportBatch: n(19)
        },
        e.Report10861 = {
            report: n(100).report
        },
        e.Report17117 = {
            report: n(101).report
        },
        e.String = n(6),
        e.UniReport = n(102),
        e.Share = n(103),
        e.GameWidget = function() {}
        ,
        e.LocalStorage = n(12),
        e.Event = n(46),
        e.MDom = n(0),
        e.getById = e.MDom.S,
        e.getByCName = e.MDom.SCN,
        e.getByTName = e.MDom.STN,
        n(23),
        e.openUrl = e.WxBridge.openUrl,
        e.WxGameJsCoreBridge = n(42),
        0 === e.UrlConfig.ScrollReport.length || e.UrlConfig.ScrollReport + "" != "false" ? e.scrollReport = n(104) : (console.log("you ban it by url scrollReport"),
        e.scrollReport = {}),
        e.screenSaver = n(105)
    }()
}
, function(e, t, n) {
    var i = n(49);
    "string" == typeof i && (i = [[e.i, i, ""]]),
    i.locals && (e.exports = i.locals);
    (0,
    n(37).default)("5405e648", i, !0, {})
}
, function(e, t, n) {
    (e.exports = n(36)(!1)).push([e.i, "/*\n全局样式控制。\n一定要写好注释，css以后想删不好删，别让文件越来越大。临时的就写清楚是临时的。\n*/\nbody {\n  -webkit-text-size-adjust: 100% !important;\n  -moz-text-size-adjust: 100% !important;\n       text-size-adjust: 100% !important;\n}\n", ""])
}
, function(e, t, n) {
    "use strict";
    (function() {
        try {
            return window.self !== window.top
        } catch (e) {
            return !0
        }
    }
    )() || Math.random() < .001 && window.addEventListener("load", (function(e) {
        setTimeout((function() {
            var e = document.createElement("iframe");
            e.style.display = "none",
            e.src = "https://game.weixin.qq.com/cgi-bin/h5/static/feature_detect/index.html",
            document.body.appendChild(e)
        }
        ), 5e3)
    }
    ))
}
, function(e, t, n) {
    "use strict";
    var i = n(2);
    Object.defineProperty(t, "__esModule", {
        value: !0
    }),
    t.default = void 0;
    var r = i(n(24))
      , o = i(n(25))
      , a = i(n(26))
      , s = i(n(27))
      , c = n(38)
      , l = n(10)
      , u = n(18)
      , d = n(3)
      , p = n(67).default
      , f = n(68).default;
    function g() {
        return Math.floor(Date.now() / 1e3)
    }
    var m = new (function() {
        function e() {
            (0,
            a.default)(this, e),
            this.preloader = new p,
            this.reporter = new f,
            this.init()
        }
        var t, n;
        return (0,
        s.default)(e, [{
            key: "init",
            value: (n = (0,
            o.default)(r.default.mark((function e() {
                var t, n, i = this;
                return r.default.wrap((function(e) {
                    for (; ; )
                        switch (e.prev = e.next) {
                        case 0:
                            return e.next = 2,
                            this.getLocalGlobalConfig();
                        case 2:
                            if (t = e.sent,
                            n = d.getValue(t, "config")) {
                                e.next = 11;
                                break
                            }
                            return e.next = 7,
                            this.fetchGlobalConfig();
                        case 7:
                            n = e.sent,
                            this.useConfig(n),
                            e.next = 12;
                            break;
                        case 11:
                            this.isExpire(t) ? (this.useConfig(n),
                            this.fetchGlobalConfig()) : (this.useConfig(n),
                            setTimeout((function() {
                                i.fetchGlobalConfig()
                            }
                            ), 6e5));
                        case 12:
                        case "end":
                            return e.stop()
                        }
                }
                ), e, this)
            }
            ))),
            function() {
                return n.apply(this, arguments)
            }
            )
        }, {
            key: "useConfig",
            value: function(e) {
                this.reportConfigVerison(e),
                this.preloader.use(d.getValue(e, "preloader")),
                this.reporter.use(d.getValue(e, "reporter"))
            }
        }, {
            key: "getLocalGlobalConfig",
            value: function() {
                return new Promise((function(e) {
                    c.getKeyValue("WgCommlibGlobalConfig", (function(t) {
                        var n = {};
                        try {
                            n = JSON.parse(t)
                        } catch (e) {
                            n = {}
                        }
                        e(n)
                    }
                    ))
                }
                ))
            }
        }, {
            key: "fetchGlobalConfig",
            value: (t = (0,
            o.default)(r.default.mark((function e() {
                var t;
                return r.default.wrap((function(e) {
                    for (; ; )
                        switch (e.prev = e.next) {
                        case 0:
                            return e.next = 2,
                            this._fetchGlobalConfig();
                        case 2:
                            return t = e.sent,
                            this.saveLocalGlobalConfig(t),
                            e.abrupt("return", t);
                        case 5:
                        case "end":
                            return e.stop()
                        }
                }
                ), e, this)
            }
            ))),
            function() {
                return t.apply(this, arguments)
            }
            )
        }, {
            key: "_fetchGlobalConfig",
            value: function() {
                return new Promise((function(e) {
                    l("https://game.weixin.qq.com/cgi-bin/gameconfigcenterwap/getsetting", {
                        setting_key: "gamecenter_commlib_globalconfig"
                    }, (function(t) {
                        0 === t.errcode && t.data && e(t.data)
                    }
                    ))
                }
                ))
            }
        }, {
            key: "saveLocalGlobalConfig",
            value: function(e) {
                c.setKeyValue("WgCommlibGlobalConfig", JSON.stringify({
                    config: e,
                    expire_time: g() + 86400
                }))
            }
        }, {
            key: "isExpire",
            value: function(e) {
                return !e || e.expire_time < g()
            }
        }, {
            key: "reportConfigVerison",
            value: function(e) {
                Math.random() < .001 && u.StartRuner("GlobalConfig", {}).EndLogic({
                    err_msg: "version:" + e.version
                })
            }
        }]),
        e
    }());
    t.default = m
}
, function(e, t, n) {
    "use strict";
    (function(e) {
        var t = n(2)(n(4))
          , i = function(e) {
            var n = Object.prototype
              , i = n.hasOwnProperty
              , r = "function" == typeof Symbol ? Symbol : {}
              , o = r.iterator || "@@iterator"
              , a = r.asyncIterator || "@@asyncIterator"
              , s = r.toStringTag || "@@toStringTag";
            function c(e, t, n) {
                return Object.defineProperty(e, t, {
                    value: n,
                    enumerable: !0,
                    configurable: !0,
                    writable: !0
                }),
                e[t]
            }
            try {
                c({}, "")
            } catch (e) {
                c = function(e, t, n) {
                    return e[t] = n
                }
            }
            function l(e, t, n, i) {
                var r = t && t.prototype instanceof p ? t : p
                  , o = Object.create(r.prototype)
                  , a = new S(i || []);
                return o._invoke = function(e, t, n) {
                    var i = "suspendedStart";
                    return function(r, o) {
                        if ("executing" === i)
                            throw new Error("Generator is already running");
                        if ("completed" === i) {
                            if ("throw" === r)
                                throw o;
                            return A()
                        }
                        for (n.method = r,
                        n.arg = o; ; ) {
                            var a = n.delegate;
                            if (a) {
                                var s = b(a, n);
                                if (s) {
                                    if (s === d)
                                        continue;
                                    return s
                                }
                            }
                            if ("next" === n.method)
                                n.sent = n._sent = n.arg;
                            else if ("throw" === n.method) {
                                if ("suspendedStart" === i)
                                    throw i = "completed",
                                    n.arg;
                                n.dispatchException(n.arg)
                            } else
                                "return" === n.method && n.abrupt("return", n.arg);
                            i = "executing";
                            var c = u(e, t, n);
                            if ("normal" === c.type) {
                                if (i = n.done ? "completed" : "suspendedYield",
                                c.arg === d)
                                    continue;
                                return {
                                    value: c.arg,
                                    done: n.done
                                }
                            }
                            "throw" === c.type && (i = "completed",
                            n.method = "throw",
                            n.arg = c.arg)
                        }
                    }
                }(e, n, a),
                o
            }
            function u(e, t, n) {
                try {
                    return {
                        type: "normal",
                        arg: e.call(t, n)
                    }
                } catch (e) {
                    return {
                        type: "throw",
                        arg: e
                    }
                }
            }
            e.wrap = l;
            var d = {};
            function p() {}
            function f() {}
            function g() {}
            var m = {};
            m[o] = function() {
                return this
            }
            ;
            var h = Object.getPrototypeOf
              , v = h && h(h(I([])));
            v && v !== n && i.call(v, o) && (m = v);
            var w = g.prototype = p.prototype = Object.create(m);
            function _(e) {
                ["next", "throw", "return"].forEach((function(t) {
                    c(e, t, (function(e) {
                        return this._invoke(t, e)
                    }
                    ))
                }
                ))
            }
            function y(e, n) {
                var r;
                this._invoke = function(o, a) {
                    function s() {
                        return new n((function(r, s) {
                            !function r(o, a, s, c) {
                                var l = u(e[o], e, a);
                                if ("throw" !== l.type) {
                                    var d = l.arg
                                      , p = d.value;
                                    return p && "object" === (0,
                                    t.default)(p) && i.call(p, "__await") ? n.resolve(p.__await).then((function(e) {
                                        r("next", e, s, c)
                                    }
                                    ), (function(e) {
                                        r("throw", e, s, c)
                                    }
                                    )) : n.resolve(p).then((function(e) {
                                        d.value = e,
                                        s(d)
                                    }
                                    ), (function(e) {
                                        return r("throw", e, s, c)
                                    }
                                    ))
                                }
                                c(l.arg)
                            }(o, a, r, s)
                        }
                        ))
                    }
                    return r = r ? r.then(s, s) : s()
                }
            }
            function b(e, t) {
                var n = e.iterator[t.method];
                if (void 0 === n) {
                    if (t.delegate = null,
                    "throw" === t.method) {
                        if (e.iterator.return && (t.method = "return",
                        t.arg = void 0,
                        b(e, t),
                        "throw" === t.method))
                            return d;
                        t.method = "throw",
                        t.arg = new TypeError("The iterator does not provide a 'throw' method")
                    }
                    return d
                }
                var i = u(n, e.iterator, t.arg);
                if ("throw" === i.type)
                    return t.method = "throw",
                    t.arg = i.arg,
                    t.delegate = null,
                    d;
                var r = i.arg;
                return r ? r.done ? (t[e.resultName] = r.value,
                t.next = e.nextLoc,
                "return" !== t.method && (t.method = "next",
                t.arg = void 0),
                t.delegate = null,
                d) : r : (t.method = "throw",
                t.arg = new TypeError("iterator result is not an object"),
                t.delegate = null,
                d)
            }
            function x(e) {
                var t = {
                    tryLoc: e[0]
                };
                1 in e && (t.catchLoc = e[1]),
                2 in e && (t.finallyLoc = e[2],
                t.afterLoc = e[3]),
                this.tryEntries.push(t)
            }
            function k(e) {
                var t = e.completion || {};
                t.type = "normal",
                delete t.arg,
                e.completion = t
            }
            function S(e) {
                this.tryEntries = [{
                    tryLoc: "root"
                }],
                e.forEach(x, this),
                this.reset(!0)
            }
            function I(e) {
                if (e) {
                    var t = e[o];
                    if (t)
                        return t.call(e);
                    if ("function" == typeof e.next)
                        return e;
                    if (!isNaN(e.length)) {
                        var n = -1
                          , r = function t() {
                            for (; ++n < e.length; )
                                if (i.call(e, n))
                                    return t.value = e[n],
                                    t.done = !1,
                                    t;
                            return t.value = void 0,
                            t.done = !0,
                            t
                        };
                        return r.next = r
                    }
                }
                return {
                    next: A
                }
            }
            function A() {
                return {
                    value: void 0,
                    done: !0
                }
            }
            return f.prototype = w.constructor = g,
            g.constructor = f,
            f.displayName = c(g, s, "GeneratorFunction"),
            e.isGeneratorFunction = function(e) {
                var t = "function" == typeof e && e.constructor;
                return !!t && (t === f || "GeneratorFunction" === (t.displayName || t.name))
            }
            ,
            e.mark = function(e) {
                return Object.setPrototypeOf ? Object.setPrototypeOf(e, g) : (e.__proto__ = g,
                c(e, s, "GeneratorFunction")),
                e.prototype = Object.create(w),
                e
            }
            ,
            e.awrap = function(e) {
                return {
                    __await: e
                }
            }
            ,
            _(y.prototype),
            y.prototype[a] = function() {
                return this
            }
            ,
            e.AsyncIterator = y,
            e.async = function(t, n, i, r, o) {
                void 0 === o && (o = Promise);
                var a = new y(l(t, n, i, r),o);
                return e.isGeneratorFunction(n) ? a : a.next().then((function(e) {
                    return e.done ? e.value : a.next()
                }
                ))
            }
            ,
            _(w),
            c(w, s, "Generator"),
            w[o] = function() {
                return this
            }
            ,
            w.toString = function() {
                return "[object Generator]"
            }
            ,
            e.keys = function(e) {
                var t = [];
                for (var n in e)
                    t.push(n);
                return t.reverse(),
                function n() {
                    for (; t.length; ) {
                        var i = t.pop();
                        if (i in e)
                            return n.value = i,
                            n.done = !1,
                            n
                    }
                    return n.done = !0,
                    n
                }
            }
            ,
            e.values = I,
            S.prototype = {
                constructor: S,
                reset: function(e) {
                    if (this.prev = 0,
                    this.next = 0,
                    this.sent = this._sent = void 0,
                    this.done = !1,
                    this.delegate = null,
                    this.method = "next",
                    this.arg = void 0,
                    this.tryEntries.forEach(k),
                    !e)
                        for (var t in this)
                            "t" === t.charAt(0) && i.call(this, t) && !isNaN(+t.slice(1)) && (this[t] = void 0)
                },
                stop: function() {
                    this.done = !0;
                    var e = this.tryEntries[0].completion;
                    if ("throw" === e.type)
                        throw e.arg;
                    return this.rval
                },
                dispatchException: function(e) {
                    if (this.done)
                        throw e;
                    var t = this;
                    function n(n, i) {
                        return a.type = "throw",
                        a.arg = e,
                        t.next = n,
                        i && (t.method = "next",
                        t.arg = void 0),
                        !!i
                    }
                    for (var r = this.tryEntries.length - 1; r >= 0; --r) {
                        var o = this.tryEntries[r]
                          , a = o.completion;
                        if ("root" === o.tryLoc)
                            return n("end");
                        if (o.tryLoc <= this.prev) {
                            var s = i.call(o, "catchLoc")
                              , c = i.call(o, "finallyLoc");
                            if (s && c) {
                                if (this.prev < o.catchLoc)
                                    return n(o.catchLoc, !0);
                                if (this.prev < o.finallyLoc)
                                    return n(o.finallyLoc)
                            } else if (s) {
                                if (this.prev < o.catchLoc)
                                    return n(o.catchLoc, !0)
                            } else {
                                if (!c)
                                    throw new Error("try statement without catch or finally");
                                if (this.prev < o.finallyLoc)
                                    return n(o.finallyLoc)
                            }
                        }
                    }
                },
                abrupt: function(e, t) {
                    for (var n = this.tryEntries.length - 1; n >= 0; --n) {
                        var r = this.tryEntries[n];
                        if (r.tryLoc <= this.prev && i.call(r, "finallyLoc") && this.prev < r.finallyLoc) {
                            var o = r;
                            break
                        }
                    }
                    o && ("break" === e || "continue" === e) && o.tryLoc <= t && t <= o.finallyLoc && (o = null);
                    var a = o ? o.completion : {};
                    return a.type = e,
                    a.arg = t,
                    o ? (this.method = "next",
                    this.next = o.finallyLoc,
                    d) : this.complete(a)
                },
                complete: function(e, t) {
                    if ("throw" === e.type)
                        throw e.arg;
                    return "break" === e.type || "continue" === e.type ? this.next = e.arg : "return" === e.type ? (this.rval = this.arg = e.arg,
                    this.method = "return",
                    this.next = "end") : "normal" === e.type && t && (this.next = t),
                    d
                },
                finish: function(e) {
                    for (var t = this.tryEntries.length - 1; t >= 0; --t) {
                        var n = this.tryEntries[t];
                        if (n.finallyLoc === e)
                            return this.complete(n.completion, n.afterLoc),
                            k(n),
                            d
                    }
                },
                catch: function(e) {
                    for (var t = this.tryEntries.length - 1; t >= 0; --t) {
                        var n = this.tryEntries[t];
                        if (n.tryLoc === e) {
                            var i = n.completion;
                            if ("throw" === i.type) {
                                var r = i.arg;
                                k(n)
                            }
                            return r
                        }
                    }
                    throw new Error("illegal catch attempt")
                },
                delegateYield: function(e, t, n) {
                    return this.delegate = {
                        iterator: I(e),
                        resultName: t,
                        nextLoc: n
                    },
                    "next" === this.method && (this.arg = void 0),
                    d
                }
            },
            e
        }("object" === (0,
        t.default)(e) ? e.exports : {});
        try {
            regeneratorRuntime = i
        } catch (e) {
            Function("r", "regeneratorRuntime = r")(i)
        }
    }
    ).call(this, n(14)(e))
}
, function(e, t, n) {
    "use strict";
    var i = n(0)
      , r = n(3)
      , o = n(17)
      , a = r.getQueryStr
      , s = n(5);
    !function(t) {
        var n = ""
          , i = {
            loaded: !1
        }
          , r = t.location;
        function c(e, t, i) {
            t.uin = a("uin", e),
            t.key = a("key", e),
            t.pass_ticket = a("pass_ticket", e),
            n = "uin=" + t.uin + "&key=" + t.key + "&pass_ticket=" + t.pass_ticket,
            t.loginStr = n,
            t.Referer = "Referer=" + encodeURIComponent(r.href.split("#")[0]),
            t.method = null != t.Referer ? "POST" : "GET",
            t.url = "/cgi-bin/comm/genfun?" + n + "&_=" + Math.random(),
            i.loginCbk && "function" == typeof i.loginCbk && i.loginCbk({
                uin: t.uin,
                key: t.key,
                from: t.from,
                pass_ticket: t.pass_ticket,
                loginStr: t.loginStr
            })
        }
        s.asynVerifyCall = function(e, t, n) {
            var a = new o;
            a.onComplete = function(t) {
                if (-1 != t.responseText.indexOf("{")) {
                    var r = JSON.parse(t.responseText);
                    0 == r.ret ? (i.sign = r.data.jsapi_sign,
                    i.sign.loginStr = a.loginStr,
                    i.sign.uin = a.uin,
                    i.sign.key = a.key,
                    i.sign.pass_ticket = a.pass_ticket,
                    i.sign.from = a.from,
                    i.loaded = !0,
                    s.verifyCall(e, i.sign, n)) : n && n(!1, {
                        err_code: 1,
                        loginStr: a.loginStr,
                        uin: a.uin,
                        key: a.key,
                        from: a.from,
                        pass_ticket: a.pass_ticket,
                        err_msg: "async signature load error"
                    })
                }
                a = null
            }
            ,
            a.onError = function(e, t) {
                n && n(!1, {
                    err_code: -1,
                    xhr: e,
                    loginStr: a.loginStr,
                    uin: a.uin,
                    key: a.key,
                    pass_ticket: a.pass_ticket,
                    err_msg: t
                }),
                a = null
            }
            ,
            /uin=[^&]+/i.test(r.search) ? (a.from = "url",
            c(r.search, a, t),
            a.send(a.Referer ? a.Referer : null)) : s.getA8key((function(e, n) {
                a.from = n,
                c(e.full_url || e.url, a, t),
                a.send(a.Referer ? a.Referer : null)
            }
            ))
        }
        ,
        e.exports = s
    }(i.window)
}
, function(e, t, n) {
    "use strict";
    e.exports = {
        AndroidcookieVersion: "7.0.14",
        AndroidHexCookieVersion: 654315060,
        iosCookieVersion: "7.0.17"
    }
}
, function(e, t, n) {
    "use strict";
    e.exports = {
        cookie_set: function(e, t, n, i, r) {
            var o = n || 30
              , a = new Date
              , s = i || "game.weixin.qq.com"
              , c = r || "/";
            a.setTime(a.getTime() + 24 * o * 60 * 60 * 1e3),
            document.cookie = e + "=" + escape(t) + ";expires=" + a.toGMTString() + ";domain=" + s + ";path=" + c
        },
        cookie_get: function(e) {
            if (new RegExp(["(^|;|\\s+)", e.replace(/([\^\.\[\$\(\)\|\*\+\?\{\\])/gi, "\\$1"), "=([^;]*);?"].join("")).test(document.cookie))
                try {
                    return decodeURIComponent(RegExp.$2)
                } catch (e) {
                    return RegExp.$2
                }
        }
    }
}
, function(e, t, n) {
    "use strict";
    var i = n(5);
    i.openUrlWithExtraWebview = i.openUrlWithExtraWebview || function(e, t) {
        i.invoke("openUrlWithExtraWebview", e, t)
    }
    ,
    e.exports = i
}
, function(e, t, n) {
    "use strict";
    var i = n(5);
    i.openGameWebView = i.openGameWebView || function(e, t) {
        i.invoke("openGameWebView", e, t)
    }
    ,
    e.exports = i
}
, function(e, t, n) {
    "use strict";
    var i = n(0);
    function r(e, t) {
        var n = (t = t || i.window.location.search).match(new RegExp("[?&]" + e + "=([^&]+)","i"));
        return null == n || n.length <= 1 ? "" : n[1]
    }
    var o = n(5)
      , a = n(1);
    o.launchMiniProgram = o.launchMiniProgram || function(e, t) {
        var n = a.clientVersion(!0);
        r("mpenv") ? e.envVersion = r("mpenv") : e.envVersion && (e.envVersion = e.envVersion || "release"),
        a.versionCompare(n, "6.5.8") >= 0 ? o.invoke("launchMiniProgram", e, t) : t && t({
            err_msg: "clientVersion:" + n + ", fail"
        })
    }
    ,
    e.exports = o
}
, function(e, t, n) {
    "use strict";
    var i = n(5);
    i.getGameCommInfo = i.getGameCommInfo || function(e, t) {
        i.invoke("getGameCommInfo", e, t)
    }
    ,
    e.exports = i
}
, function(e, t, n) {
    "use strict";
    var i = n(5)
      , r = n(42);
    i.openGameUrlWithExtraWebView = i.openGameUrlWithExtraWebView || function(e, t) {
        var n = !1;
        if (r.hadJscoreInited() && e.useJscore)
            try {
                n = !0,
                r.openUrl(e).then((function(e) {
                    console.log("jscore-then", e),
                    e && e.data && e.data.jsapiRes ? t(e.data.jsapiRes) : t({})
                }
                ))
            } catch (n) {
                i.invoke("openGameUrlWithExtraWebView", e, t)
            }
        else
            i.invoke("openGameUrlWithExtraWebView", e, t);
        return n
    }
    ,
    e.exports = i
}
, function(e, t, n) {
    "use strict";
    var i = n(62)
      , r = n(63)
      , o = r.postMessageToJscore
      , a = r.listenEventToJscore
      , s = r.unListenEventToJscore
      , c = r.postMessageToJscoreCbk
      , l = r.CallbackMap
      , u = function(e) {
        if (i[e.apiName]) {
            var t = i[e.apiName](e);
            e.jcCbkId && c(e.apiName, e, t, null)
        } else
            i.notFound(e)
    };
    e.exports = function() {
        WxGameJsCoreBridge.invokeEvent = function(e) {
            if ("string" == typeof e && (e = JSON.parse(e)),
            console.log("webview-invokeEvent", e),
            e.wvCbkId)
                l[e.wvCbkId](e.data),
                e.isListen || delete l[e.wvCbkId];
            else if (u)
                return u(e)
        }
        ,
        WxGameJsCoreBridge.postMessage = function(e, t, n) {
            o(e, t, n)
        }
        ,
        WxGameJsCoreBridge.on = function(e, t) {
            a(e, t)
        }
        ,
        WxGameJsCoreBridge.off = function(e, t) {
            s(e, t)
        }
    }
}
, function(e, t, n) {
    "use strict";
    e.exports = {
        notFound: function(e) {
            console.error("webview - jscoreEvent - notFoundEvent", e)
        }
    }
}
, function(e, t, n) {
    "use strict";
    var i = 1;
    var r = {};
    function o(e, t, n, o, a) {
        if ("undefined" != typeof WxGameJsCoreNative) {
            var s = 0;
            "function" == typeof n ? (s = i++,
            r[s] = n) : "number" == typeof n && (s = n);
            var c = {
                params: {
                    apiName: e,
                    wvCbkId: s,
                    isListen: o,
                    isOffListen: a,
                    params: t
                }
            };
            return WxGameJsCoreNative.postMessage(JSON.stringify(c))
        }
    }
    e.exports = {
        CallbackMap: r,
        postMessageToJscore: function(e, t, n) {
            n && (n.apiName = e),
            o(e, t, n, !1)
        },
        listenEventToJscore: function(e, t) {
            t && (t.apiName = e),
            o(e, {}, t, !0)
        },
        unListenEventToJscore: function(e, t) {
            if (t)
                for (var n in r)
                    r[n] === t && (delete r[n],
                    o(e, {}, n, !0, !0));
            else {
                var i = !1;
                for (var a in r)
                    r[a].apiName === e && (delete r[a],
                    i = !0);
                i && o(e, {}, null, !0, !0)
            }
        },
        postMessageToJscoreCbk: function(e, t, n) {
            if ("undefined" != typeof WxGameJsCoreNative) {
                var i = {
                    params: {
                        apiName: e,
                        params: t,
                        data: n
                    }
                };
                return WxGameJsCoreNative.postMessage(JSON.stringify(i))
            }
        }
    }
}
, function(e, t, n) {
    "use strict";
    var i = n(5);
    i.enableGameView = i.enableGameView || function(e, t) {
        i.invoke("enableGameView", e, t)
    }
    ,
    e.exports = i
}
, function(e, t, n) {
    "use strict";
    var i = n(5);
    i.openCustomWebview = i.openCustomWebview || function(e, t) {
        i.invoke("openCustomWebview", e, t)
    }
    ,
    e.exports = i
}
, function(e, t, n) {
    "use strict";
    var i = n(5);
    i.openFinderView = i.openFinderView || function(e, t) {
        "openFinderProfile" === e.action ? e.commentScene = 9 : "openFinderFeed" === e.action ? (e.shareScene = 16,
        e.requestScene = 18) : "autoOpenFinderLive" === e.action && (e.commentScene = 9),
        i.invoke("openFinderView", {
            extInfo: JSON.stringify(e)
        }, t)
    }
    ,
    e.exports = i
}
, function(e, t, n) {
    "use strict";
    var i = n(2);
    Object.defineProperty(t, "__esModule", {
        value: !0
    }),
    t.default = void 0;
    var r = i(n(24))
      , o = i(n(25))
      , a = i(n(26))
      , s = i(n(27))
      , c = n(38)
      , l = n(1)
      , u = n(0)
      , d = n(3)
      , p = "https://game.weixin.qq.com/cgi-bin/h5/static/preloader/index.html";
    function f() {
        try {
            return window.self !== window.top
        } catch (e) {
            return !0
        }
    }
    var g = function() {
        function e() {
            (0,
            a.default)(this, e)
        }
        var t, n;
        return (0,
        s.default)(e, [{
            key: "use",
            value: (n = (0,
            o.default)(r.default.mark((function e(t) {
                var n = this;
                return r.default.wrap((function(e) {
                    for (; ; )
                        switch (e.prev = e.next) {
                        case 0:
                            return this.config = t,
                            e.next = 3,
                            this.isEnable(t);
                        case 3:
                            e.sent && setTimeout((function() {
                                n.preload(t)
                            }
                            ), 1e4);
                        case 5:
                        case "end":
                            return e.stop()
                        }
                }
                ), e, this)
            }
            ))),
            function(e) {
                return n.apply(this, arguments)
            }
            )
        }, {
            key: "getLocalPreloaderConfig",
            value: function() {
                return new Promise((function(e) {
                    c.getKeyValue("WgCommlibPreloadGlobalConfig", (function(t) {
                        var n = {};
                        try {
                            n = JSON.parse(t)
                        } catch (e) {
                            n = {}
                        }
                        e(n)
                    }
                    ))
                }
                ))
            }
        }, {
            key: "isEnable",
            value: (t = (0,
            o.default)(r.default.mark((function e(t) {
                var n, i, o, a;
                return r.default.wrap((function(e) {
                    for (; ; )
                        switch (e.prev = e.next) {
                        case 0:
                            if (!f()) {
                                e.next = 2;
                                break
                            }
                            return e.abrupt("return", !1);
                        case 2:
                            if ((n = d.getValue(t, "static_resources")) && n.resources_key) {
                                e.next = 5;
                                break
                            }
                            return e.abrupt("return", !1);
                        case 5:
                            if (i = Math.floor(Date.now() / 1e3),
                            o = u.window.navigator.userAgent,
                            !(n.start_time && n.start_time > i)) {
                                e.next = 9;
                                break
                            }
                            return e.abrupt("return", !1);
                        case 9:
                            if (!(n.end_time && n.end_time < i)) {
                                e.next = 11;
                                break
                            }
                            return e.abrupt("return", !1);
                        case 11:
                            if (!l.isWepkg() && l.isiOS && n.os_version && -1 !== o.indexOf("OS ".concat(n.os_version))) {
                                e.next = 13;
                                break
                            }
                            return e.abrupt("return", !1);
                        case 13:
                            if (n.full_site_enable || n.include_short_url && n.include_short_url.find((function(e) {
                                return location.pathname.indexOf(e) > -1
                            }
                            ))) {
                                e.next = 15;
                                break
                            }
                            return e.abrupt("return", !1);
                        case 15:
                            return e.next = 17,
                            this.getLocalPreloaderConfig();
                        case 17:
                            if (!(a = e.sent) || a.loaded_resources_key !== n.resources_key) {
                                e.next = 20;
                                break
                            }
                            return e.abrupt("return", !1);
                        case 20:
                            return e.abrupt("return", !0);
                        case 21:
                        case "end":
                            return e.stop()
                        }
                }
                ), e, this)
            }
            ))),
            function(e) {
                return t.apply(this, arguments)
            }
            )
        }, {
            key: "preload",
            value: function(e) {
                var t = document.createElement("iframe");
                t.style.display = "none",
                t.src = p,
                t.addEventListener("load", (function() {
                    t.contentWindow.postMessage({
                        type: "StartPreload",
                        resources: {
                            images: d.getValue(e, "static_resources.images"),
                            videos: d.getValue(e, "static_resources.videos"),
                            scripts: d.getValue(e, "static_resources.scripts"),
                            styles: d.getValue(e, "static_resources.styles")
                        }
                    }, p)
                }
                )),
                document.body.appendChild(t),
                window.addEventListener("message", (function(t) {
                    if ("https://game.weixin.qq.com" === t.origin) {
                        var n = t.data;
                        n && "EndPreload" === n.type && c.setKeyValue("WgCommlibPreloadGlobalConfig", JSON.stringify({
                            loaded_resources_key: d.getValue(e, "static_resources.resources_key")
                        }))
                    }
                }
                ))
            }
        }]),
        e
    }();
    t.default = g
}
, function(e, t, n) {
    "use strict";
    var i = n(2);
    Object.defineProperty(t, "__esModule", {
        value: !0
    }),
    t.default = void 0;
    var r = i(n(26))
      , o = i(n(27))
      , a = n(3)
      , s = function() {
        function e() {
            (0,
            r.default)(this, e)
        }
        return (0,
        o.default)(e, [{
            key: "use",
            value: function(e) {
                this.config = e
            }
        }, {
            key: "canIReport",
            value: function() {
                var e, t = a.getValue(this, "config.random_config");
                return !t || ("boolean" == typeof this._canIReport || (this._canIReport = (e = Math.floor(Date.now() / 1e3),
                !!(t.start_time && t.start_time > e) || !!(t.end_time && t.end_time < e) || !(t.full_site_enable || t.include_short_url && t.include_short_url.find((function(e) {
                    return location.pathname.indexOf(e) > -1
                }
                ))) || 100 * Math.random() < t.random_rate)),
                this._canIReport)
            }
        }]),
        e
    }();
    t.default = s
}
, function(e, t, n) {
    "use strict";
    n(70).polyfill()
}
, function(e, t, n) {
    "use strict";
    function i(e, t) {
        if (null == e)
            throw new TypeError("Cannot convert first argument to object");
        for (var n = Object(e), i = 1; i < arguments.length; i++) {
            var r = arguments[i];
            if (null != r)
                for (var o = Object.keys(Object(r)), a = 0, s = o.length; a < s; a++) {
                    var c = o[a]
                      , l = Object.getOwnPropertyDescriptor(r, c);
                    void 0 !== l && l.enumerable && (n[c] = r[c])
                }
        }
        return n
    }
    e.exports = {
        assign: i,
        polyfill: function() {
            Object.assign || Object.defineProperty(Object, "assign", {
                enumerable: !1,
                configurable: !0,
                writable: !0,
                value: i
            })
        }
    }
}
, function(e, t, n) {
    "use strict";
    (function(e) {
        var i = n(2);
        Object.defineProperty(t, "__esModule", {
            value: !0
        }),
        t.default = void 0;
        var r = i(n(4))
          , o = i(n(75))
          , a = setTimeout;
        function s(e) {
            return Boolean(e && void 0 !== e.length)
        }
        function c() {}
        function l(e) {
            if (!(this instanceof l))
                throw new TypeError("Promises must be constructed via new");
            if ("function" != typeof e)
                throw new TypeError("not a function");
            this._state = 0,
            this._handled = !1,
            this._value = void 0,
            this._deferreds = [],
            m(e, this)
        }
        function u(e, t) {
            for (; 3 === e._state; )
                e = e._value;
            0 !== e._state ? (e._handled = !0,
            l._immediateFn((function() {
                var n = 1 === e._state ? t.onFulfilled : t.onRejected;
                if (null !== n) {
                    var i;
                    try {
                        i = n(e._value)
                    } catch (e) {
                        return void p(t.promise, e)
                    }
                    d(t.promise, i)
                } else
                    (1 === e._state ? d : p)(t.promise, e._value)
            }
            ))) : e._deferreds.push(t)
        }
        function d(e, t) {
            try {
                if (t === e)
                    throw new TypeError("A promise cannot be resolved with itself.");
                if (t && ("object" === (0,
                r.default)(t) || "function" == typeof t)) {
                    var n = t.then;
                    if (t instanceof l)
                        return e._state = 3,
                        e._value = t,
                        void f(e);
                    if ("function" == typeof n)
                        return void m((i = n,
                        o = t,
                        function() {
                            i.apply(o, arguments)
                        }
                        ), e)
                }
                e._state = 1,
                e._value = t,
                f(e)
            } catch (t) {
                p(e, t)
            }
            var i, o
        }
        function p(e, t) {
            e._state = 2,
            e._value = t,
            f(e)
        }
        function f(e) {
            2 === e._state && 0 === e._deferreds.length && l._immediateFn((function() {
                e._handled || l._unhandledRejectionFn(e._value)
            }
            ));
            for (var t = 0, n = e._deferreds.length; t < n; t++)
                u(e, e._deferreds[t]);
            e._deferreds = null
        }
        function g(e, t, n) {
            this.onFulfilled = "function" == typeof e ? e : null,
            this.onRejected = "function" == typeof t ? t : null,
            this.promise = n
        }
        function m(e, t) {
            var n = !1;
            try {
                e((function(e) {
                    n || (n = !0,
                    d(t, e))
                }
                ), (function(e) {
                    n || (n = !0,
                    p(t, e))
                }
                ))
            } catch (e) {
                if (n)
                    return;
                n = !0,
                p(t, e)
            }
        }
        l.prototype.catch = function(e) {
            return this.then(null, e)
        }
        ,
        l.prototype.then = function(e, t) {
            var n = new this.constructor(c);
            return u(this, new g(e,t,n)),
            n
        }
        ,
        l.prototype.finally = o.default,
        l.all = function(e) {
            return new l((function(t, n) {
                if (!s(e))
                    return n(new TypeError("Promise.all accepts an array"));
                var i = Array.prototype.slice.call(e);
                if (0 === i.length)
                    return t([]);
                var o = i.length;
                function a(e, s) {
                    try {
                        if (s && ("object" === (0,
                        r.default)(s) || "function" == typeof s)) {
                            var c = s.then;
                            if ("function" == typeof c)
                                return void c.call(s, (function(t) {
                                    a(e, t)
                                }
                                ), n)
                        }
                        i[e] = s,
                        0 == --o && t(i)
                    } catch (e) {
                        n(e)
                    }
                }
                for (var c = 0; c < i.length; c++)
                    a(c, i[c])
            }
            ))
        }
        ,
        l.resolve = function(e) {
            return e && "object" === (0,
            r.default)(e) && e.constructor === l ? e : new l((function(t) {
                t(e)
            }
            ))
        }
        ,
        l.reject = function(e) {
            return new l((function(t, n) {
                n(e)
            }
            ))
        }
        ,
        l.race = function(e) {
            return new l((function(t, n) {
                if (!s(e))
                    return n(new TypeError("Promise.race accepts an array"));
                for (var i = 0, r = e.length; i < r; i++)
                    l.resolve(e[i]).then(t, n)
            }
            ))
        }
        ,
        l._immediateFn = "function" == typeof e && function(t) {
            e(t)
        }
        || function(e) {
            a(e, 0)
        }
        ,
        l._unhandledRejectionFn = function(e) {
            "undefined" != typeof console && console && console.warn("Possible Unhandled Promise Rejection:", e)
        }
        ;
        var h = l;
        t.default = h
    }
    ).call(this, n(72).setImmediate)
}
, function(e, t, n) {
    "use strict";
    (function(e) {
        var i = void 0 !== e && e || "undefined" != typeof self && self || window
          , r = Function.prototype.apply;
        function o(e, t) {
            this._id = e,
            this._clearFn = t
        }
        t.setTimeout = function() {
            return new o(r.call(setTimeout, i, arguments),clearTimeout)
        }
        ,
        t.setInterval = function() {
            return new o(r.call(setInterval, i, arguments),clearInterval)
        }
        ,
        t.clearTimeout = t.clearInterval = function(e) {
            e && e.close()
        }
        ,
        o.prototype.unref = o.prototype.ref = function() {}
        ,
        o.prototype.close = function() {
            this._clearFn.call(i, this._id)
        }
        ,
        t.enroll = function(e, t) {
            clearTimeout(e._idleTimeoutId),
            e._idleTimeout = t
        }
        ,
        t.unenroll = function(e) {
            clearTimeout(e._idleTimeoutId),
            e._idleTimeout = -1
        }
        ,
        t._unrefActive = t.active = function(e) {
            clearTimeout(e._idleTimeoutId);
            var t = e._idleTimeout;
            t >= 0 && (e._idleTimeoutId = setTimeout((function() {
                e._onTimeout && e._onTimeout()
            }
            ), t))
        }
        ,
        n(73),
        t.setImmediate = "undefined" != typeof self && self.setImmediate || void 0 !== e && e.setImmediate || void 0,
        t.clearImmediate = "undefined" != typeof self && self.clearImmediate || void 0 !== e && e.clearImmediate || void 0
    }
    ).call(this, n(13))
}
, function(e, t, n) {
    "use strict";
    (function(e, t) {
        !function(e, n) {
            if (!e.setImmediate) {
                var i, r, o, a, s, c = 1, l = {}, u = !1, d = e.document, p = Object.getPrototypeOf && Object.getPrototypeOf(e);
                p = p && p.setTimeout ? p : e,
                "[object process]" === {}.toString.call(e.process) ? i = function(e) {
                    t.nextTick((function() {
                        g(e)
                    }
                    ))
                }
                : !function() {
                    if (e.postMessage && !e.importScripts) {
                        var t = !0
                          , n = e.onmessage;
                        return e.onmessage = function() {
                            t = !1
                        }
                        ,
                        e.postMessage("", "*"),
                        e.onmessage = n,
                        t
                    }
                }() ? e.MessageChannel ? ((o = new MessageChannel).port1.onmessage = function(e) {
                    g(e.data)
                }
                ,
                i = function(e) {
                    o.port2.postMessage(e)
                }
                ) : d && "onreadystatechange"in d.createElement("script") ? (r = d.documentElement,
                i = function(e) {
                    var t = d.createElement("script");
                    t.onreadystatechange = function() {
                        g(e),
                        t.onreadystatechange = null,
                        r.removeChild(t),
                        t = null
                    }
                    ,
                    r.appendChild(t)
                }
                ) : i = function(e) {
                    setTimeout(g, 0, e)
                }
                : (a = "setImmediate$" + Math.random() + "$",
                s = function(t) {
                    t.source === e && "string" == typeof t.data && 0 === t.data.indexOf(a) && g(+t.data.slice(a.length))
                }
                ,
                e.addEventListener ? e.addEventListener("message", s, !1) : e.attachEvent("onmessage", s),
                i = function(t) {
                    e.postMessage(a + t, "*")
                }
                ),
                p.setImmediate = function(e) {
                    "function" != typeof e && (e = new Function("" + e));
                    for (var t = new Array(arguments.length - 1), n = 0; n < t.length; n++)
                        t[n] = arguments[n + 1];
                    var r = {
                        callback: e,
                        args: t
                    };
                    return l[c] = r,
                    i(c),
                    c++
                }
                ,
                p.clearImmediate = f
            }
            function f(e) {
                delete l[e]
            }
            function g(e) {
                if (u)
                    setTimeout(g, 0, e);
                else {
                    var t = l[e];
                    if (t) {
                        u = !0;
                        try {
                            !function(e) {
                                var t = e.callback
                                  , n = e.args;
                                switch (n.length) {
                                case 0:
                                    t();
                                    break;
                                case 1:
                                    t(n[0]);
                                    break;
                                case 2:
                                    t(n[0], n[1]);
                                    break;
                                case 3:
                                    t(n[0], n[1], n[2]);
                                    break;
                                default:
                                    t.apply(void 0, n)
                                }
                            }(t)
                        } finally {
                            f(e),
                            u = !1
                        }
                    }
                }
            }
        }("undefined" == typeof self ? void 0 === e ? void 0 : e : self)
    }
    ).call(this, n(13), n(74))
}
, function(e, t, n) {
    "use strict";
    var i, r, o = e.exports = {};
    function a() {
        throw new Error("setTimeout has not been defined")
    }
    function s() {
        throw new Error("clearTimeout has not been defined")
    }
    function c(e) {
        if (i === setTimeout)
            return setTimeout(e, 0);
        if ((i === a || !i) && setTimeout)
            return i = setTimeout,
            setTimeout(e, 0);
        try {
            return i(e, 0)
        } catch (t) {
            try {
                return i.call(null, e, 0)
            } catch (t) {
                return i.call(this, e, 0)
            }
        }
    }
    !function() {
        try {
            i = "function" == typeof setTimeout ? setTimeout : a
        } catch (e) {
            i = a
        }
        try {
            r = "function" == typeof clearTimeout ? clearTimeout : s
        } catch (e) {
            r = s
        }
    }();
    var l, u = [], d = !1, p = -1;
    function f() {
        d && l && (d = !1,
        l.length ? u = l.concat(u) : p = -1,
        u.length && g())
    }
    function g() {
        if (!d) {
            var e = c(f);
            d = !0;
            for (var t = u.length; t; ) {
                for (l = u,
                u = []; ++p < t; )
                    l && l[p].run();
                p = -1,
                t = u.length
            }
            l = null,
            d = !1,
            function(e) {
                if (r === clearTimeout)
                    return clearTimeout(e);
                if ((r === s || !r) && clearTimeout)
                    return r = clearTimeout,
                    clearTimeout(e);
                try {
                    r(e)
                } catch (t) {
                    try {
                        return r.call(null, e)
                    } catch (t) {
                        return r.call(this, e)
                    }
                }
            }(e)
        }
    }
    function m(e, t) {
        this.fun = e,
        this.array = t
    }
    function h() {}
    o.nextTick = function(e) {
        var t = new Array(arguments.length - 1);
        if (arguments.length > 1)
            for (var n = 1; n < arguments.length; n++)
                t[n - 1] = arguments[n];
        u.push(new m(e,t)),
        1 !== u.length || d || c(g)
    }
    ,
    m.prototype.run = function() {
        this.fun.apply(null, this.array)
    }
    ,
    o.title = "browser",
    o.browser = !0,
    o.env = {},
    o.argv = [],
    o.version = "",
    o.versions = {},
    o.on = h,
    o.addListener = h,
    o.once = h,
    o.off = h,
    o.removeListener = h,
    o.removeAllListeners = h,
    o.emit = h,
    o.prependListener = h,
    o.prependOnceListener = h,
    o.listeners = function(e) {
        return []
    }
    ,
    o.binding = function(e) {
        throw new Error("process.binding is not supported")
    }
    ,
    o.cwd = function() {
        return "/"
    }
    ,
    o.chdir = function(e) {
        throw new Error("process.chdir is not supported")
    }
    ,
    o.umask = function() {
        return 0
    }
}
, function(e, t, n) {
    "use strict";
    Object.defineProperty(t, "__esModule", {
        value: !0
    }),
    t.default = void 0;
    var i = function(e) {
        var t = this.constructor;
        return this.then((function(n) {
            return t.resolve(e()).then((function() {
                return n
            }
            ))
        }
        ), (function(n) {
            return t.resolve(e()).then((function() {
                return t.reject(n)
            }
            ))
        }
        ))
    };
    t.default = i
}
, function(e, t, n) {
    "use strict";
    var i = n(5);
    i.reportGameWeb = i.reportGameWeb || function(e, t) {
        i.invoke("reportGameWeb", e, t)
    }
    ,
    e.exports = i
}
, function(e, t, n) {
    "use strict";
    e.exports = {
        fastAndroidJsapi: function(e) {
            if (e.Env.isAndroid)
                try {
                    var t = document.createElement("script");
                    t.src = "weixin://game.js";
                    var n = document.getElementsByTagName("head");
                    if (n[0]) {
                        var i = n[0].firstElementChild;
                        n[0].insertBefore(t, i)
                    }
                } catch (e) {}
        }
    }
}
, function(e, t, n) {
    "use strict";
    n(3);
    var i = n(18)
      , r = n(43)
      , o = n(12);
    e.exports = {
        maxWaitTime: 15e3,
        MinRowHeight: 48,
        reportRateB: function() {
            var e = this.getPreCache();
            if ("empty" != e.fromUrl) {
                var t = Date.now();
                if (t - e.time <= this.maxWaitTime)
                    i.StartRuner("openRateEnd", {}).EndLogic({
                        err_msg: JSON.stringify({
                            cost_time: t - 1 * e.time,
                            fromUrl: e.fromUrl
                        })
                    }),
                    this.deletePreCache()
            }
        },
        getPureUrl: function() {
            var e = window.location.href || "";
            return e = e.replace(/\?{1,}(.*)/, "").replace(/^http(s)?:\/\//, "")
        },
        getPreCache: function() {
            var e = {
                fromUrl: "empty",
                time: 0
            };
            try {
                var t = "openRate_" + this.getPureUrl()
                  , n = o.getKeyValue(t);
                try {
                    var i = JSON.parse(n + "");
                    return i.fromUrl && i.time > 0 ? {
                        fromUrl: i.fromUrl || "cachenogot",
                        time: 1 * (i.time || i)
                    } : e
                } catch (e) {}
                return e
            } catch (t) {
                return e
            }
        },
        deletePreCache: function() {
            try {
                var e = window.location.href || ""
                  , t = "openRate_" + (e = e.replace(/\?{1,}(.*)/, "").replace(/^http(s)?:\/\//, ""));
                localStorage.removeItem(t)
            } catch (e) {}
        },
        bodyChange: function(e, t) {
            if (!0 !== this.reported)
                for (var n = 0; n < e.length; n++) {
                    var i = e[n];
                    if ("childList" == i.type)
                        if (((i.target || {}).offsetHeight || 0) > this.MinRowHeight) {
                            this.reported = !0,
                            this.reportRateB(),
                            this.reportWhiteScreen(),
                            t.disconnect();
                            break
                        }
                }
        },
        addObserver: function() {
            if (document.body.offsetHeight > this.MinRowHeight)
                return this.reported = !0,
                this.reportRateB(),
                void this.reportWhiteScreen();
            if (MutationObserver) {
                var e = new MutationObserver(function(e, t) {
                    this.bodyChange(e, t)
                }
                .bind(this))
                  , t = document.body;
                e.observe(t, {
                    attributes: !1,
                    childList: !0,
                    subtree: !0
                })
            } else {
                i.StartRuner("openRateEnd", {}).EndLogic({
                    err_msg: "MutationObserver_not_support"
                });
                var n = setInterval(function() {
                    document.body.offsetHeight > this.MinRowHeight && (this.reported = !0,
                    this.reportRateB(),
                    this.reportWhiteScreen(),
                    clearInterval(n))
                }
                .bind(this), 100)
            }
        },
        addOpenRateB: function() {
            try {
                "complete" === document.readyState ? this.addObserver() : window.addEventListener("DOMContentLoaded", function() {
                    this.addObserver()
                }
                .bind(this), !1)
            } catch (e) {}
        },
        reportWhiteScreen: function() {
            this.whiteScreenReported || (r.reportWhiteScreen(),
            this.whiteScreenReported = !0)
        }
    }
}
, function(e, t, n) {
    "use strict";
    var i = n(0).window
      , r = n(1)
      , o = n(80)
      , a = n(7)
      , s = n(81)
      , c = n(82)
      , l = n(83)
      , u = n(84)
      , d = n(85)
      , p = n(12)
      , f = n(10)
      , g = n(21);
    n(9),
    n(86),
    n(87),
    n(88),
    n(89),
    n(90),
    n(91),
    n(92),
    n(93),
    n(94);
    var m = n(19)
      , h = n(95);
    window.__reserveWifiList__ || (window.__reserveWifiList__ = []);
    var v = s.extend(s, {
        isArray: function(e) {
            return e.constructor == Array
        },
        isElementInViewport: function(e, t, n) {
            var i = e.getBoundingClientRect()
              , r = n || i.width / 2
              , o = t || i.height / 2
              , a = window.innerHeight
              , s = window.innerWidth;
            document.documentElement.clientHeight,
            document.documentElement.clientWidth;
            return i.height > 0 && i.width > 0 && (i.top >= 0 && i.top <= a - o || i.bottom >= o && i.bottom <= a) && (i.left >= 0 && i.left <= s - r || i.right >= r && i.right <= s)
        },
        debounce: function(e, t, n) {
            var i;
            return function() {
                var r = arguments;
                i || (i = setTimeout((function() {
                    e.apply(n, r),
                    i = null
                }
                ), t))
            }
        },
        log: function() {
            var e = arguments
              , t = window.logInfo || t;
            try {
                window.logInfo || t ? t.apply(window, e) : console.log.apply(null, e)
            } catch (e) {
                console.log(e)
            }
        },
        uuid: function() {
            var e = Date.now();
            return "undefined" != typeof performance && "function" == typeof performance.now && (e += performance.now()),
            "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (function(t) {
                var n = (e + 16 * Math.random()) % 16 | 0;
                return e = Math.floor(e / 16),
                ("x" === t ? n : 3 & n | 8).toString(16)
            }
            ))
        }
    });
    var w = {
        un_ready: "un_ready",
        un_download: "un_download",
        un_reserve: "un_reserve",
        try_play: "try_play",
        todo: "todo",
        reserved: "reserved",
        h5: "h5",
        h5_and_app: "h5_and_app",
        installed: "installed",
        downloaded: "downloaded",
        downloading: "downloading",
        checking: "checking",
        un_update: "un_update",
        pause: "pause",
        install: "install",
        wait_wifi: "wait_wifi"
    }
      , _ = {
        launchIOSAppText: "WX_GameCenter",
        launchAndroidAppText: "WX_GameCenter"
    }
      , y = {
        downloadInternal: !0,
        iosDefaultText: "进入",
        iosReserveText: "预约",
        iosReservedText: "已预约",
        installText: "安装",
        downIngText: "下载中",
        pauseText: "恢复",
        androidStartText: "启动",
        androidDownText: "下载",
        androidUpdateText: "更新",
        checkingText: "校验中",
        todoText: "敬请期待",
        tryPlayText: "试玩",
        androidReserveText: "预约",
        androidReservedText: "已预约",
        waitWifiText: "等待Wi-Fi",
        h5StartText: "启动",
        needBtnTextAutoUpdate: !0,
        forceQueryAll: !1,
        actionFlag: {
            canPauseDownload: !0
        }
    };
    function b() {
        return b.instance || (this.allAppMap = {},
        this.controllerMap = {},
        b.instance = this),
        b.instance
    }
    b.instance = null,
    b.prototype.register = function(e) {
        var t = this.controllerMap
          , n = e.id
          , i = e.config
          , r = e.callback;
        t[n] || (t[n] = {
            config: i,
            callback: r
        })
    }
    ;
    var x = "queryAppStatus"
      , k = "queryAppStatusDone";
    function S(e) {
        var t = e.appitemList || []
          , n = e.btnList || []
          , i = e.config || {}
          , r = e.params || {}
          , o = e.callback || {};
        this.config = v.extendDeep(_, y, i, r),
        this.id = v.uuid(),
        i.needBtnTextAutoUpdate && i.wordDomClassName,
        r.sceneid;
        var a = this;
        return this.allAppMap = {},
        this.params = r,
        this.progressCbks = this.progressCbks || [],
        this.actionCbks = this.actionCbks || [],
        this.textChangeCbks = this.textChangeCbks || [],
        this.addCallback(o),
        this.callback = {
            progress: function(e) {
                a.progressCbks.forEach((function(t) {
                    t(e)
                }
                ))
            },
            action: function(e) {
                a.actionCbks.forEach((function(t) {
                    console.log("action cbks"),
                    t(e)
                }
                ))
            },
            textChange: function(e) {
                a.textChangeCbks.forEach((function(t) {
                    t(e)
                }
                ))
            }
        },
        this.appWareHouse = new b,
        this.appWareHouse.register({
            id: this.id,
            config: this.config,
            callback: {
                statusChangeCbk: this.statusChangeCbk.bind(this),
                statusReadyCbk: this.statusReadyCbk.bind(this),
                progressChangeCbk: this.progressChangeCbk.bind(this)
            }
        }),
        this.throttleSetBtnWordAndProgressFuncMap = this.throttleSetBtnWordAndProgressFuncMap || {},
        this.throttleSetBtnWordAndProgress = function(e) {
            return a.throttleSetBtnWordAndProgressFuncMap[e] || (a.throttleSetBtnWordAndProgressFuncMap[e] = v.throttle(this.setBtnWordAndProgress, 100, a)),
            a.throttleSetBtnWordAndProgressFuncMap[e]
        }
        ,
        this.listenEvent(),
        this.append({
            appitemList: t,
            btnList: n
        }),
        this
    }
    function I(e, t) {
        for (var n = 0; n < e.length; n++)
            if (e[n].toString() == t.toString())
                return !0;
        return !1
    }
    b.prototype.queryAppListStatus = function(e, t) {
        var n = this
          , i = [];
        e.forEach((function(e) {
            if (n.allAppMap[e] && n.allAppMap[e].appitem) {
                var t = n.allAppMap[e].appitem;
                i.push(t)
            }
        }
        )),
        function(e, t) {
            var n = []
              , i = []
              , o = {}
              , s = []
              , c = []
              , l = []
              , u = []
              , d = []
              , p = []
              , f = []
              , g = []
              , m = []
              , h = []
              , _ = []
              , y = []
              , b = []
              , x = []
              , k = []
              , S = {};
            function I(e) {
                var t = {}
                  , n = {
                    installedAppIdList: w.installed,
                    unDownloadAppIdList: w.un_download,
                    downloadingAppIdList: w.downloading,
                    downloadedAppIdList: w.downloaded,
                    updateAppIdList: w.un_update,
                    waitWifiAppIdList: w.wait_wifi,
                    pauseAppIdList: w.pause,
                    unReserveAppIdList: w.un_reserve,
                    reservedAppIdList: w.reserved,
                    h5AppIdList: w.h5,
                    todoAppIdList: w.todo,
                    tryPlayAppIdList: w.try_play
                };
                return ["unDownloadAppIdList", "unReserveAppIdList", "reservedAppIdList", "tryPlayAppIdList", "updateAppIdList", "downloadedAppIdList", "installedAppIdList", "pauseAppIdList", "waitWifiAppIdList", "downloadingAppIdList", "h5AppIdList", "todoAppIdList"].forEach((function(i) {
                    (e[i] || []).forEach((function(e) {
                        t[e] = n[i]
                    }
                    ))
                }
                )),
                t
            }
            if ((e = e || []).forEach((function(e) {
                var t = e.AppID;
                k.push(t),
                S[t] = e
            }
            )),
            e.forEach((function(e) {
                var t = e.AppID
                  , a = W(e);
                switch (a) {
                case w.un_reserve:
                    g.push(t);
                    break;
                case w.reserved:
                    m.push(t);
                    break;
                case w.todo:
                    h.push(t);
                    break;
                case w.h5:
                    b.push(t);
                    break;
                case w.h5_and_app:
                    y.push(t);
                default:
                    a === w.try_play && _.push(t),
                    (e.package_name_list || [e.PackageName]).forEach((function(e) {
                        -1 == n.indexOf(e) && (n.push(e),
                        o[e] = t)
                    }
                    )),
                    i.push(t + "://"),
                    x.push(t),
                    r.isiOS && c.push(t)
                }
            }
            )),
            r.isAndroid)
                console.warn("getInstallState start", n, (new Date).getTime()),
                a.getInstallState({
                    packageName: n,
                    packageUrl: i
                }, (function(e) {
                    !function(e) {
                        if (e.err_msg.indexOf(":yes") > -1) {
                            var t = r.isiOS ? e.result : JSON.parse(e.result);
                            for (var n in t) {
                                var i = t[n];
                                if (n = n.replace(/:\/+$/g, ""),
                                -1 != k.indexOf(n) && s.push(n),
                                o[n]) {
                                    var a = o[n];
                                    i > 0 && s.push(a);
                                    var c = i
                                      , l = S[a].VersionCode;
                                    c && l && l > c && (f.push(a),
                                    s.pop())
                                }
                            }
                        }
                    }(e),
                    v.log("getInstallState end", n, (new Date).getTime()),
                    a.queryDownloadTask({
                        appIdArray: k
                    }, (function(e) {
                        var n = {};
                        v.log("queryDownload end", k, (new Date).getTime()),
                        e.result && (n = JSON.parse(e.result)),
                        function(e) {
                            for (var t in e) {
                                var n = t.replace("://", "")
                                  , i = e[t];
                                -1 == s.indexOf(n) && (-1 == y.indexOf(n) || -1 != i.download_id && "default" != i.state && "download_fail" != i.state ? (-1 != i.download_id && "default" != i.state || (1 == i.reserve_for_wifi ? p.push(n) : c.push(n)),
                                "download_succ" == i.state && u.push(n),
                                "downloading" == i.state && l.push(n),
                                "download_pause" == i.state && (1 == i.reserve_for_wifi ? p.push(n) : d.push(n)),
                                "download_fail" == i.state && c.push(n)) : b.push(n))
                            }
                        }(n),
                        function(e) {
                            for (var t in e) {
                                var n = t.replace("://", "")
                                  , i = e[t]
                                  , r = i.progress;
                                r && r >= 0 && L({
                                    appid: n,
                                    progress: i.progress
                                })
                            }
                        }(n),
                        t(I({
                            installedAppIdList: s,
                            unDownloadAppIdList: c,
                            downloadingAppIdList: l,
                            downloadedAppIdList: u,
                            pauseAppIdList: d,
                            waitWifiAppIdList: p,
                            updateAppIdList: f,
                            unReserveAppIdList: g,
                            reservedAppIdList: m,
                            todoAppIdList: h,
                            h5AppIdList: b,
                            tryPlayAppIdList: _
                        }))
                    }
                    ))
                }
                ));
            else {
                t(I({
                    installedAppIdList: s,
                    unDownloadAppIdList: c,
                    downloadingAppIdList: l,
                    downloadedAppIdList: u,
                    pauseAppIdList: d,
                    waitWifiAppIdList: p,
                    updateAppIdList: f,
                    unReserveAppIdList: g,
                    reservedAppIdList: m,
                    todoAppIdList: h,
                    h5AppIdList: b,
                    tryPlayAppIdList: _
                }))
            }
        }(i, (function(e) {
            t(e)
        }
        ))
    }
    ,
    b.prototype.append = function(e) {
        var t = this;
        e.id;
        (e.appitemList || []).forEach((function(e) {
            var n = e.AppID;
            t.checkUpdateApp({
                appid: n,
                appitem: e
            })
        }
        ))
    }
    ,
    b.prototype.queryApp = function(e) {
        var t = this.allAppMap
          , n = e.appitem
          , i = e.callback
          , r = e.appid || n.AppID;
        this.checkUpdateApp({
            appid: r,
            appitem: n
        });
        var o = t[r].statusFSM;
        return t[r] ? (R(n = t[r].appitem, (function(e) {
            var n = t[r].statusFSM;
            n.isStatusReady() || n.setStatus(e);
            var o = {
                appid: r,
                status: n.getStatus(e),
                progres: O(r)
            };
            i(o)
        }
        )),
        {
            appid: r,
            status: o.getStatus(),
            progres: O(r)
        }) : {
            appid: r,
            status: w.un_ready
        }
    }
    ,
    b.prototype.checkUpdateApp = function(e) {
        var t = this
          , n = t.allAppMap
          , i = e.appid
          , r = e.appitem;
        if (i in n) {
            var o = n[i].appitem
              , a = n[i].statusFSM;
            r && !P(o, r) && (a.resetAppItem(r),
            n[i].appitem = r)
        } else
            n[i] = {
                appitem: r,
                statusFSM: new D({
                    appid: i,
                    appitem: r,
                    status: w.un_ready,
                    statusChangeCbk: function(e) {
                        t.statusChangeCbk(e)
                    },
                    statusReadyCbk: function(e) {},
                    progressChangeCbk: function(e) {
                        t.progressChangeCbk(e)
                    }
                })
            }
    }
    ,
    b.prototype.queryAppList = function(e) {
        var t = this
          , n = e.appidList || []
          , i = e.appitemList || []
          , r = e.callback
          , o = t.allAppMap
          , a = [];
        i.forEach((function(e) {
            if (e) {
                var n = e.AppID;
                t.checkUpdateApp({
                    appid: n,
                    appitem: e
                }),
                a.push(n)
            } else
                v.log("AppWareHouse queryAppList exist empty appitem")
        }
        ));
        var s = [];
        n.forEach((function(e, t) {
            e in o ? s.push(e) : console.error("有未传入appitem的游戏正在进行查询", e)
        }
        ));
        var c = [];
        t.queryAppListStatus(n, (function(e) {
            for (var t in e) {
                var n = o[t].statusFSM;
                e[t] != w.un_ready && n.setStatus(e[t]),
                c.push({
                    appid: t,
                    status: n.getStatus(),
                    progress: O(t)
                })
            }
            r && r(c)
        }
        ))
    }
    ,
    b.prototype.statusChangeCbk = function(e) {
        var t = this.controllerMap;
        for (var n in t) {
            t[n].callback.statusChangeCbk(e)
        }
    }
    ,
    b.prototype.progressChangeCbk = function(e) {
        var t = this.controllerMap;
        for (var n in t) {
            t[n].callback.progressChangeCbk(e)
        }
    }
    ,
    b.prototype.getAppItem = function(e) {
        return this.allAppMap[e] ? this.allAppMap[e].appitem : (v.log("AppWareHouse get appitem but empty:", e),
        null)
    }
    ,
    S.getAppItemByAppId = function() {
        var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : []
          , t = arguments.length > 1 ? arguments[1] : void 0
          , n = !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2];
        if (!e.length)
            return t && t();
        f("/cgi-bin/gamewap/batchgetgamebase", JSON.stringify({
            appid_list: e,
            need_is_subscribed: n,
            method: "POST"
        }), (function(e) {
            t && t(e)
        }
        ), (function(e) {
            t && t()
        }
        ))
    }
    ,
    S.prototype.addCallback = function(e) {
        return (e = e || {}).progress && !I(this.progressCbks, e.progress) && this.progressCbks.push(e.progress),
        e.action && !I(this.actionCbks, e.action) && this.actionCbks.push(e.action),
        e.textChange && !I(this.textChangeCbks, e.textChange) && this.textChangeCbks.push(e.textChange),
        this
    }
    ,
    S.prototype.listenEvent = function() {
        var e = this;
        e.allAppMap;
        a.on("activity:state_change", (function(t) {
            v.log("activity:state_change", t),
            console.warn("activity:state_change", t),
            "onResume" === t.state && (r.isiOS || (v.log("activity resume"),
            e.initVisableDetailAppState({
                refreshAllVisableApp: !0,
                forceQueryAll: e.config.forceQueryAll
            })))
        }
        ));
        var t = v.throttle(e.initVisableDetailAppState, 500, e);
        window.addEventListener("scroll", t)
    }
    ,
    S.prototype.initVisableDetailAppState = function(e) {
        var t = this
          , n = t.getVisableAppList(e)
          , i = []
          , r = [];
        e = e || {},
        n.forEach((function(e) {
            i.push(t.allAppMap[e].appitem),
            r.push(t.allAppMap[e])
        }
        )),
        v.log("initVisableDetailAppState visableAppIDList", n),
        v.log("initVisableDetailAppState visableAppInfoList", r),
        i.length && t.appWareHouse.queryAppList({
            id: t.id,
            appidList: n,
            appitemList: i,
            refresh: e.refreshAllVisableApp || !1,
            callback: function(e) {
                e.forEach((function(e) {
                    var n = e.appid;
                    e.status != w.un_ready && (t.allAppMap[n].status = e.status,
                    t.statusReadyCbk(e))
                }
                ))
            }
        })
    }
    ,
    S.prototype.initDetailAppState = function(e) {
        var t = this;
        t.queryAppInfo(e, (function(n) {
            n && e == n.appid && n.status != w.un_ready && (t.allAppMap[e].status = n.status,
            t.statusReadyCbk(n))
        }
        ))
    }
    ,
    S.prototype.forceInitApp = function(e) {
        this.initDetailAppState(e)
    }
    ,
    S.prototype.append = function(e) {
        var t = this
          , n = t.allAppMap
          , i = e.appitemList || []
          , r = e.btnList || [];
        return console.log("append begin", t.id, i),
        i.forEach((function(e) {
            var i = e.AppID;
            if (n[i]) {
                var r = n[i].appitem;
                P(e, r) || (n[i].appitem = e,
                console.log("append change ing", t.id, r, e))
            } else
                t.initAppInfo({
                    appid: i,
                    appitem: e
                })
        }
        )),
        console.log("append after", t.id, t.allAppMap),
        r.forEach((function(e) {
            var i = e.appid
              , r = e.doms || []
              , o = e.appitem;
            if (i) {
                if (i in n || t.initAppInfo({
                    appid: i
                }),
                r.length > 0 && !(i in n))
                    return v.log("已传入" + i + "的按钮信息，但未传入对应的appitem。"),
                    void console.warn("已传入" + i + "的按钮信息，未传入对应的appitem。");
                o || (o = n[i].appitem);
                var a = n[i].doms || [];
                (r = Array.prototype.slice.call(r, 0)).forEach((function(e) {
                    if (e) {
                        var r = !0;
                        if (a.forEach((function(t) {
                            t.dom == e && (r = !1)
                        }
                        )),
                        r) {
                            var s = {
                                dom: e,
                                appitem: o || {},
                                inited: !1
                            };
                            a.push(s);
                            var c = n[i].status;
                            c == w.un_ready && o && o.AppID && (c = W(o)),
                            t.setBtnWord({
                                appid: i,
                                doms: [e],
                                status: c
                            }),
                            t.bindBtnClickEvent(i, s)
                        }
                    }
                }
                ))
            } else
                v.log("btn invalid appid", i)
        }
        )),
        t.appWareHouse.append({
            id: t.id,
            appitemList: i
        }),
        setTimeout((function() {
            t.initVisableDetailAppState({
                forceQueryAll: t.config.forceQueryAll || !1
            })
        }
        ), 0),
        t
    }
    ,
    S.prototype.reset = function(e) {
        var t = e.config || {}
          , n = e.params || {};
        return this.config = v.extendDeep(this.config, t, n),
        this
    }
    ;
    var A = {
        statusChecking: 20011,
        launchH5: 40,
        reserve: 45,
        tryPlay: 55,
        launchApp: 22,
        install: 44,
        download: 23,
        confirmWifi: 58,
        refuseWifi: 59,
        update: 54,
        reserveWifi: 82,
        un_reserve: 93,
        downloading: 20012,
        pauseDownload: 20013,
        resumeDownload: 20014,
        checking: 20015,
        todo: 20016,
        reserved: 20017
    };
    function C(e, t) {
        var n = e.err_msg || ""
          , i = t.replace(/[A-Z]/g, (function(e) {
            return "_" + String.fromCharCode(e.charCodeAt(0) + 32)
        }
        ));
        return !(-1 == n.indexOf(t) && -1 == n.indexOf(i) || -1 == n.indexOf("ok") && -1 == n.indexOf("yes"))
    }
    S.prototype.forceQueryWareHouse = function(e) {
        var t = this
          , n = (t.allAppMap[e] || {}).appitem;
        return t.allAppMap[e] || t.initAppInfo(e),
        t.appWareHouse.queryApp({
            appid: e,
            appitem: n,
            callback: function(e) {
                var n = e.appid;
                e.status != w.un_ready && (t.allAppMap[n].status = e.status,
                t.statusReadyCbk(e))
            }
        })
    }
    ,
    S.prototype.doAction = function(e, t) {
        var n = this
          , i = g(n.config, !1)
          , a = (t = t || {}).dom
          , s = t.domAppitem
          , c = n.allAppMap[e]
          , l = s || c.appitem
          , u = n.forceQueryWareHouse(e).status
          , d = u != w.statusChecking && u != w.un_ready
          , p = {
            appitem: l,
            dom: a,
            STATUS: v.extend({}, w),
            actionKey: "",
            actionid: 999,
            ext: {},
            appid: l.AppID || ""
        }
          , f = ""
          , m = {};
        if (a = a || null,
        v.log("app current status", l.AppID, u),
        t.isAutoDownload && (i.isAutoDownload = !0),
        u == w.downloading && (f = "downloading"),
        u == w.statusChecking && (f = "statusChecking"),
        u == w.checking && (f = "checking"),
        u == w.todo && (f = "todo"),
        p.actionKey = f,
        p.actionid = A[f],
        u == w.reserved && (f = "reserved",
        p.actionid = A[f]),
        f && ("downloading" == f && (m = {
            progress: O(e) || 0
        }),
        p.ext = m,
        n.callback.action && n.callback.action(p)),
        !d)
            return v.log("Btn Click Wait StatusChecking", e),
            a ? c.waitingStack.push(a) : c.waitingStack.push("forceAction_" + +new Date),
            v.log("waitingStack", e, c.waitingStack),
            void n.initDetailAppState(e);
        c.actionDoing && v.log("App has doing action", e),
        c.actionDoing = !0,
        T.do({
            appitem: l,
            dom: a,
            status: u,
            config: i,
            callback: function(t) {
                if (v.log("[DoAction] After Jsapi:", e, u, t),
                f = "",
                m = {},
                (u == w.h5 || C(t, "launchH5")) && (f = "launchH5"),
                (C(t, "addDownloadTask") || C(t, "addDownloadTaskStraight")) && (u == w.un_download && (f = "download"),
                u == w.try_play && (f = "tryPlay"),
                u == w.un_update && (f = "update"),
                1 == t.reserve_for_wifi ? (f = "reserveWifi",
                o.emit("manualUpdate", {
                    nextStatus: w.wait_wifi,
                    appitem: l
                }, !0)) : o.emit("manualUpdate", {
                    nextStatus: w.downloading,
                    appitem: l
                }, !0)),
                C(t, "downloadAppInternal") && (f = "download"),
                (C(t, "launchApplication") || C(t, "launch3rdApp")) && (f = -1 != (t.launchInstallResult || "").indexOf("ok") ? "download" : "launchApp"),
                C(t, "installDownloadTask") && (f = "install"),
                C(t, "reserve") && (f = "reserve",
                o.emit("manualUpdate", {
                    nextStatus: w.reserved,
                    appitem: l
                }, !0)),
                C(t, "confirmWifiDownload") && (f = "confirmWifi",
                r.isAndroid && o.emit("manualUpdateWifi", {
                    appid: l.AppID,
                    status: w.reserved,
                    oldStatus: w.reserved
                })),
                C(t, "refuseWifiDownload") && (f = "refuseWifi"),
                C(t, "pauseDownloadTask") && (f = "pauseDownload",
                o.emit("manualUpdate", {
                    nextStatus: w.pause,
                    appitem: l
                }, !0)),
                C(t, "resumeDownloadTask") && (f = "resumeDownload",
                1 == t.reserve_for_wifi ? (f = "reserveWifi",
                o.emit("manualUpdate", {
                    nextStatus: w.wait_wifi,
                    appitem: l
                }, !0)) : o.emit("manualUpdate", {
                    nextStatus: w.downloading,
                    appitem: l
                }, !0)),
                "downloading" == f) {
                    var i = O(e) || 0;
                    m = {
                        progress: i
                    }
                }
                C(t, "reservedAlready") && (f = "reserved"),
                C(t, "cancelReserve") && (f = "un_reserve",
                o.emit("manualUpdate", {
                    nextStatus: w.un_reserve,
                    appitem: l
                }, !0)),
                p.actionid = A[f],
                p.actionKey = f,
                p.ext = m,
                p.actionid && (n.callback.action && n.callback.action(p),
                45 == p.actionid && r.isAndroid && l.DownloadInfo && l.DownloadInfo.is_allow_wifi_autodownload && n.callback.action && n.callback.action(Object.assign(p, {
                    actionid: 58,
                    actionKey: "confirmWifi"
                }))),
                c.actionDoing = !1
            }
        })
    }
    ,
    S.prototype.autoDownload = function(e, t) {
        var n = this
          , i = (n.allAppMap[e] || {}).appitem;
        n.allAppMap[e] || n.initAppInfo(e),
        n.appWareHouse.queryApp({
            appid: e,
            appitem: i,
            callback: function(e) {
                var i = e.appid
                  , r = e.status
                  , o = !1;
                r != w.un_download && r != w.pause && r != w.installed && r != w.un_update && r != w.downloaded && r != w.try_play || (setTimeout((function() {
                    n.forceAction(i, {
                        isAutoDownload: !0
                    })
                }
                ), 300),
                o = !0),
                t({
                    status: r,
                    result: o
                })
            }
        })
    }
    ,
    S.prototype.forceAction = function(e, t) {
        v.log("[forceAction]", e, t),
        this.doAction(e, t)
    }
    ,
    S.prototype.bindBtnClickEvent = function(e, t) {
        var n = this
          , i = t.dom;
        t.appitem;
        i.onclick = function() {
            var t = n.allAppMap[e]
              , r = t.status
              , o = t.appitem
              , a = n.params || {};
            v.log("[BtnClick Begin]", e, r),
            m([{
                iSceneId: a.sceneid || 34,
                iUIArea: a.uiarea || 0,
                iActionId: 25,
                iOpType: 2,
                sGameId: o.AppID,
                iPositionId: a.position
            }]),
            n.doAction(e, {
                dom: i,
                domAppitem: o
            })
        }
    }
    ;
    var T = {
        do: function(e) {
            var t = e.appitem
              , n = (e.dom,
            e.status)
              , i = e.callback
              , o = T.detail
              , a = e.config;
            if (n != w.todo && n != w.h5) {
                var s = r.isiOS ? "ios" : "android";
                switch (n) {
                case w.un_download:
                    o.downloadApp[s]({
                        appitem: t,
                        config: a,
                        callback: function(e) {
                            i(e)
                        }
                    });
                    break;
                case w.un_reserve:
                    var c = "reserve";
                    ("wx5a611599efa17e78" == t.AppID || t.is_use_follow) && (c = "reserveSp"),
                    o[c]({
                        appitem: t,
                        config: a,
                        callback: function(e) {
                            i(e)
                        }
                    });
                    break;
                case w.try_play:
                    o.tryplay({
                        appitem: t,
                        config: a,
                        callback: function(e) {
                            i(e)
                        }
                    });
                    break;
                case w.reserved:
                    o.cancelReserve({
                        appitem: t,
                        config: a,
                        callback: function(e) {
                            i(e)
                        }
                    });
                    break;
                case w.h5_and_app:
                    o.launchAppOrH5({
                        appitem: t,
                        config: a,
                        callback: function(e) {
                            i(e)
                        }
                    });
                    break;
                case w.installed:
                    o.launchApp({
                        appitem: t,
                        config: a,
                        callback: function(e) {
                            i(e)
                        }
                    });
                    break;
                case w.downloaded:
                    o.installApp({
                        appitem: t,
                        config: a,
                        callback: function(e) {
                            i(e)
                        }
                    });
                    break;
                case w.downloading:
                    if (!a.actionFlag.canPauseDownload)
                        break;
                    o.pauseDownload({
                        appitem: t,
                        config: a,
                        callback: function(e) {
                            i(e)
                        }
                    });
                    break;
                case w.checking:
                    return;
                case w.un_update:
                    o.downloadApp[s]({
                        appitem: t,
                        config: a,
                        callback: function(e) {
                            i(e)
                        }
                    });
                    break;
                case w.pause:
                    o.resumeDownload({
                        appitem: t,
                        config: a,
                        callback: function(e) {
                            i(e)
                        }
                    });
                    break;
                case w.wait_wifi:
                    o.waitWifi({
                        appitem: t,
                        config: a,
                        callback: function(e) {
                            i(e)
                        }
                    });
                    break;
                case w.install:
                    o.installApp({
                        appitem: t,
                        config: a,
                        callback: function(e) {
                            i(e)
                        }
                    })
                }
            } else {
                switch (n) {
                case w.todo:
                    break;
                case w.h5:
                    o.launchH5({
                        appitem: t,
                        config: a,
                        callback: function(e) {
                            i(e)
                        }
                    })
                }
                i(n)
            }
        },
        detail: {
            tryplay: function(e) {
                var t = e.appitem
                  , n = e.callback
                  , i = e.config || {}
                  , r = t.AppID
                  , o = "您暂无试玩资格"
                  , a = "试玩资格已用完"
                  , s = "今天资格已用完，明天再来"
                  , l = "试玩已结束，感谢您的关注"
                  , u = t.resource_from_type || "";
                f("/cgi-bin/gamewap/participategametrial?", JSON.stringify({
                    app_id: r,
                    from_type: u,
                    method: "POST"
                }), (function(e) {
                    if (e && 0 != e.errcode)
                        c.alert(o);
                    else if (e && "result"in e)
                        switch (e.result) {
                        case 0:
                            T.detail.downloadApp.android({
                                appitem: t,
                                callback: function(e) {
                                    n(e)
                                },
                                config: i
                            });
                            break;
                        case 1:
                        case 3:
                            c.alert(a);
                            break;
                        case 2:
                            c.alert(s);
                            break;
                        case 4:
                            c.alert(l);
                            break;
                        default:
                            c.alert(o)
                        }
                }
                ))
            },
            launchH5: function(e) {
                var t = e.appitem
                  , n = e.callback
                  , i = (e.config,
                t.HVAppInfo.LaunchUrl);
                a.openUrl(i, (function(e) {
                    n({
                        err_msg: "launchH5:ok"
                    })
                }
                ))
            },
            downloadApp: {
                ios: function(e) {
                    var t = e.appitem
                      , n = e.callback
                      , i = e.config || {};
                    T.detail.launchApp({
                        appitem: t,
                        config: i,
                        callback: function(e) {
                            e.err_msg.indexOf(":ok") > -1 || e.err_msg.indexOf(":yes") > -1 ? n(e) : function(e, t) {
                                var n = e.DownloadInfo
                                  , o = r.versionCompare(r.clientVersion(1), "6.5.5") > 0;
                                if (!i.downloadInternal || !o || v.getQueryStr("isFromWeappEntry"))
                                    return location.href = n.DownloadURL,
                                    void t({
                                        err_msg: "downloadAppInternal:ok"
                                    });
                                a.downloadAppInternal({
                                    appUrl: n.DownloadURL
                                }, (function(e) {
                                    t(e)
                                }
                                ))
                            }(t, n)
                        }
                    })
                },
                android: function(e) {
                    var t = e.appitem
                      , n = e.callback
                      , i = e.config || {}
                      , s = t.AppID
                      , l = t.DownloadInfo
                      , u = r.versionCompare(r.clientVersion(1), "6.5.7") >= 0 ? "addDownloadTaskStraight" : "addDownloadTask"
                      , d = "number" == typeof l.DownloaderType ? l.DownloaderType : 1
                      , p = "boolean" == typeof l.use_downloader_widget && l.use_downloader_widget
                      , f = "boolean" == typeof l.download_in_wifi && l.download_in_wifi
                      , g = i.isAutoDownload ? 3 : 1
                      , m = l.android_section_md5_list || [];
                    function h() {
                        a.invoke(u, {
                            appid: s,
                            task_name: t.Name || t.PackageName,
                            package_name: t.PackageName,
                            task_url: l.DownloadURL,
                            file_md5: l.AndroidApkMd5,
                            task_size: l.AndroidApkSize,
                            alternative_url: l.AlternativeDownloadURL,
                            downloader_type: d,
                            download_type: g,
                            use_downloader_widget: p,
                            download_in_wifi: f,
                            scene: i.sceneid,
                            uiarea: i.uiarea,
                            fileSectionMd5: m,
                            extInfo: encodeURIComponent(JSON.stringify({
                                gameid: s,
                                noticeid: parseInt(t.Noticeid) || parseInt(v.getQueryStr("noticeid") || 0) || 0
                            }))
                        }, (function(e) {
                            E(t, i, e, "add"),
                            n && n(e),
                            p && r.versionCompare(r.clientVersion(1), "7.0.3") >= 0 && o.trigger("addToDownloaderWidget", {
                                appid: s
                            })
                        }
                        ))
                    }
                    i.showDownloadConfirmAlert && r.isAndroid ? c.alert("即将为你下载 ".concat(t.Name), {
                        confirmCb: function() {
                            h()
                        },
                        style: "twoBtn",
                        closeCb: function() {}
                    }) : h()
                }
            },
            launchApp: function(e) {
                var t = e.appitem
                  , n = e.callback
                  , i = e.config || {}
                  , o = t.AppID
                  , s = t.DownloadInfo;
                if (t.has_sp_launch_privilege)
                    new l({
                        appid: o,
                        ssid: i.sceneid,
                        success: function(e) {
                            d({
                                extern_info: e.extern_info
                            })
                        },
                        fail: function() {
                            d()
                        },
                        cancel: function() {}
                    });
                else {
                    var c = p.getKeyValue("first_launch_game_privilege");
                    (!c || c && -1 === c.indexOf(o || "")) && r.isAndroid && t && 4 !== t.AppType ? ((c = c ? JSON.parse(c) : []).push(o),
                    p.setKeyValue("first_launch_game_privilege", JSON.stringify(c)),
                    new u({
                        appid: o,
                        appitem: t,
                        scene: "",
                        uiarea: "",
                        success: function(e) {
                            console.log("success"),
                            d()
                        },
                        cancel: function() {
                            console.log("cancel")
                        }
                    })) : d()
                }
                function d(e) {
                    var c = r.versionCompare(r.clientVersion(1), "6.5.5") >= 0 ? "launchApplication" : "launch3rdApp"
                      , l = (e = e || {}).extern_info || t.launch_info || (r.isAndroid ? i.launchAndroidAppText : i.launchIOSAppText);
                    a.invoke(c, {
                        appID: o,
                        messageExt: l,
                        extInfo: l,
                        showLaunchFailToast: !1,
                        installSchemeUrl: s.DownloadURL,
                        installAction: 1
                    }, (function(e) {
                        n && n(e)
                    }
                    ))
                }
            },
            installApp: function(e) {
                var t = e.appitem
                  , n = e.callback
                  , i = e.config || {}
                  , r = t.AppID
                  , o = i.isAutoDownload ? 3 : 1;
                a.queryDownloadTask({
                    appid: r
                }, (function(e) {
                    e.state.indexOf("_succ") > -1 ? a.installDownloadTask({
                        download_id: e.download_id,
                        download_type: o
                    }, (function(e) {
                        n(e)
                    }
                    )) : n({
                        err_msg: "(installApp -> queryDownloadTask):" + JSON.stringify(e)
                    })
                }
                ))
            },
            launchAppOrH5: function(e) {
                var t = e.appitem
                  , n = e.callback
                  , i = e.config || {}
                  , r = T.detail;
                r.launchApp({
                    appitem: t,
                    callback: function(e) {
                        e.err_msg.indexOf(":ok") > -1 ? n(e) : r.launchH5(t, n)
                    },
                    config: i
                })
            },
            waitWifi: function(e) {
                var t = e.appitem
                  , n = (e.callback,
                e.config,
                t.AppID);
                a.queryDownloadTask({
                    appid: n
                }, (function(t) {
                    t.state.indexOf("default") > -1 && T.detail.downloadApp.android(e),
                    t.state.indexOf("pause") > -1 && T.detail.resumeDownload(e)
                }
                ))
            },
            pauseDownload: function(e) {
                var t = e.appitem
                  , n = e.callback
                  , i = e.config || {}
                  , r = t.AppID;
                a.queryDownloadTask({
                    appid: r
                }, (function(e) {
                    e.state.indexOf("downloading") > -1 ? a.pauseDownloadTask({
                        download_id: e.download_id
                    }, (function(e) {
                        n(e)
                    }
                    )) : (v.log("appbtn ", r, "(pauseDownload -> queryDownloadTask):" + JSON.stringify(e)),
                    e.state.indexOf("pause") > -1 && T.detail.resumeDownload({
                        appitem: t,
                        callback: n,
                        config: i
                    }))
                }
                ))
            },
            resumeDownload: function(e) {
                var t = e.appitem
                  , n = e.callback
                  , i = e.config || {}
                  , s = t.AppID
                  , l = t.DownloadInfo
                  , u = "boolean" == typeof l.use_downloader_widget && l.use_downloader_widget
                  , d = "boolean" == typeof l.download_in_wifi && l.download_in_wifi
                  , p = i.isAutoDownload ? 3 : 1;
                a.queryDownloadTask({
                    appid: s
                }, (function(e) {
                    if (e.state.indexOf("pause") > -1) {
                        var l = function() {
                            a.resumeDownloadTask({
                                download_id: e.download_id,
                                use_downloader_widget: u,
                                download_in_wifi: d,
                                download_type: p
                            }, (function(e) {
                                E(t, i, e, "resume"),
                                n(e),
                                u && o.trigger("addToDownloaderWidget", {
                                    appid: s
                                })
                            }
                            ))
                        };
                        i.showDownloadConfirmAlert && r.isAndroid ? c.alert("即将为你恢复下载 ".concat(t.Name), {
                            style: "twoBtn",
                            confirmCb: function() {
                                l()
                            },
                            closeCb: function() {}
                        }) : l()
                    } else
                        v.log("appbtn", t.AppID, "(resumeDownload -> queryDownloadTask):" + JSON.stringify(e)),
                        e.state.indexOf("downloading") > -1 && T.detail.pauseDownload({
                            appitem: t,
                            callback: n,
                            config: i
                        })
                }
                ))
            },
            reserve: function(e) {
                var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "预约"
                  , n = e.appitem
                  , i = e.callback
                  , o = e.config || {}
                  , a = n.DownloadInfo
                  , s = {
                    appid: n.AppID,
                    noticeid: parseInt(n.Noticeid) || parseInt(v.getQueryStr("noticeid") || 0) || 0,
                    actid: parseInt(n.act_id) || parseInt(v.getQueryStr("act_id") || 0) || 0,
                    device: r.isiOS ? 1 : 2,
                    clientversion: 0,
                    scene: o.sceneid || "",
                    addcard: !0,
                    method: "GET"
                }
                  , l = {
                    reserveSucess: t + "成功，游戏上线后将立即通过公众号通知你，并为你发放微信预约礼包",
                    reserveSafeSucess: t + "成功",
                    reserveWithCardAndWifiSuccess: "礼包卡券已发放，游戏上线后将通过公众号通知你。是否打开上线后WIFI自动下载 ?",
                    reserveWithCard: "礼包卡券已发放，游戏上线后将通过公众号通知你",
                    reserveWithWifiSuccess: "游戏上线后将通过微信公众号通知你。你是否同意，游戏上线后，在WIFI状态下自动下载该游戏 ?"
                }
                  , u = r.isAndroid && (n.IsAllowWifiAutoDownload || n.is_allow_wifi_autodownload || a.is_allow_wifi_autodownload);
                o.hideReservedDialog || c.showLoading("正在" + t + "..."),
                f("/cgi-bin/gamecenterwap/makegameappointment", s, (function(e) {
                    if (c.hideLoading(""),
                    0 === e.errcode)
                        if (i({
                            err_msg: "reserve:ok"
                        }),
                        o.noWifiReserve)
                            u ? c.alert(0 == e.addcard_result ? l.reserveWithCardAndWifiSuccess : l.reserveWithWifiSuccess, {
                                confirmCb: function() {},
                                title: t + "成功",
                                style: "oneBtn",
                                closeCb: function() {
                                    i({
                                        err_msg: "refuseWifiDownload:ok"
                                    })
                                }
                            }) : r.isiOS ? c.alert(l.reserveSafeSucess) : c.alert(0 == e.addcard_result ? l.reserveWithCard : l.reserveSucess);
                        else {
                            if (o.hideReservedDialog)
                                return;
                            new d({
                                autoDownload: u,
                                appitem: n,
                                type: t,
                                close: function(e, t) {}
                            })
                        }
                    else
                        c.alert(t + "失败(" + e.errcode + ")")
                }
                ), (function(e) {
                    c.hideLoading("");
                    try {
                        c.alert(t + "失败,网络错误(" + e.errcode + ")")
                    } catch (e) {
                        c.alert(t + "失败,请稍后重试")
                    }
                }
                ))
            },
            reserveEvent: function(e, t, n, i, r) {
                var o = {
                    data: [{
                        appid: e.AppID,
                        scene_id: n && n.sceneid || 0,
                        notice_id: parseInt(e.Noticeid) || parseInt(v.getQueryStr("noticeid") || 0) || 0,
                        act_id: parseInt(e.act_id) || parseInt(v.getQueryStr("act_id") || 0) || 0,
                        allpath: v.getQueryStr("allpath"),
                        from_url: location.href.replace(/(uin|key|pass_ticket|abtest_cookie)=[^&]+/g, "")
                    }],
                    method: "POST"
                };
                f("/cgi-bin/comm/reportconfirmwifidownload", JSON.stringify(o), (function(n) {
                    if (c.hideLoading(),
                    0 === n.errcode) {
                        if (window.__reserveWifiList__.push(e.AppID),
                        t && t({
                            err_msg: "confirmWifiDownload:ok"
                        }),
                        r)
                            return;
                        i ? c.alert("已预约WIFI下载，可在我-卡包中查看礼包") : f("/cgi-bin/gamewap/getgamebaseextrafor", JSON.stringify({
                            appid: e.AppID,
                            need_subscribe_info: !0
                        }), (function(e) {
                            0 === e.errcode ? (e.subscribe_info || {}).has_wifi_download_card ? c.alert("已预约WIFI下载，可在我-卡包中查看礼包") : c.alert("已预约WIFI下载") : c.alert("已预约WIFI下载")
                        }
                        ), (function(e) {
                            c.alert("已预约WIFI下载")
                        }
                        ))
                    }
                }
                ), (function(e) {
                    c.hideLoading(),
                    c.showTips("预约失败(" + e.errcode + ")", {
                        type: "fail",
                        timeout: 1e3
                    })
                }
                ))
            },
            cancelReserve: function(e) {
                var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "预约"
                  , n = e.appitem
                  , i = e.callback
                  , o = e.config || {};
                console.log("cancel reserve", n),
                ("wx5a611599efa17e78" == n.AppID || n.is_use_follow) && (t = "关注"),
                o.showReservedAlert ? c.alert(t + (r.isAndroid ? "成功，游戏上线后将在Wi-Fi下自动下载" : "成功，游戏上线后将通知你")) : o.hideCancelReserve || h.show({
                    noFilterXSS: !1,
                    actionList: [r.isAndroid ? "放弃" + t + "后，将不在 Wi-Fi 下为你自动下载该游戏" : t + "游戏，可以第一时间收到游戏上线通知", "放弃" + t],
                    actionCfgList: [{
                        isTitle: !0
                    }, {
                        isDanger: !0
                    }],
                    clickCbk: function(e) {
                        f("/cgi-bin/gamecenterwap/gamecancelappointment", JSON.stringify({
                            appid: n.AppID,
                            scene_id: o && o.sceneid || 0,
                            notice_id: parseInt(n.Noticeid) || parseInt(v.getQueryStr("noticeid") || 0) || 0,
                            act_id: parseInt(n.act_id) || parseInt(v.getQueryStr("act_id") || 0) || 0,
                            allpath: v.getQueryStr("allpath"),
                            from_url: location.href.replace(/(uin|key|pass_ticket|abtest_cookie)=[^&]+/g, "")
                        }), (function(e) {
                            c.hideLoading(),
                            0 === e.errcode && (c.showTips("放弃" + t + "成功", {
                                type: "success",
                                timeout: 1e3
                            }),
                            m([{
                                iSceneId: 34,
                                iUIArea: 3412,
                                iActionId: 93,
                                iOpType: 2,
                                sGameId: n.AppID,
                                iPositionId: 4
                            }]),
                            i && i({
                                err_msg: "cancelReserve:ok"
                            }))
                        }
                        ), (function(e) {
                            c.hideLoading(),
                            c.showTips("取消失败(" + e.errcode + ")", {
                                type: "fail",
                                timeout: 1e3
                            })
                        }
                        ))
                    },
                    cancelCbk: function() {}
                })
            },
            reserveWifi: function(e) {
                var t = e.appitem
                  , n = e.callback
                  , i = e.config || {}
                  , o = t.DownloadInfo
                  , a = r.isAndroid && (t.IsAllowWifiAutoDownload || t.is_allow_wifi_autodownload || o.is_allow_wifi_autodownload);
                window.__reserveWifiList__.indexOf(t.AppID) > -1 || t.subscribed_wifi_autodownload || i.noWifiReserve || (a ? (c.showTips("正在开启..."),
                this.reserveEvent(t, n, i)) : n({
                    err_msg: "reservedAlready: ok"
                }))
            },
            reserveSp: function(e) {
                this.reserve(e, "关注")
            }
        }
    };
    function E(e, t, n, i) {
        var r = {};
        r.err_msg = n.err_msg || "",
        r.type = i,
        "reserve_for_wifi"in n && (r.reserve_for_wifi = n.reserve_for_wifi),
        n.err_msg.indexOf("cancel") > -1 && m([{
            iSceneId: t.sceneid || 34,
            iUIArea: t.uiarea || 0,
            iActionId: 61,
            iOpType: 2,
            sGameId: e.AppID,
            iPositionId: t.position,
            sExternInfo: JSON.stringify(r)
        }]),
        m([{
            iSceneId: t.sceneid || 34,
            iUIArea: t.uiarea || 0,
            iActionId: 20018,
            iOpType: 2,
            sGameId: e.AppID,
            iPositionId: t.position,
            sExternInfo: JSON.stringify(r)
        }])
    }
    function O(e) {
        try {
            var t = localStorage.getItem("APPBTN_progress_" + e);
            return JSON.parse(t || "{}").progress || ""
        } catch (e) {
            return ""
        }
    }
    function L(e) {
        var t = e.appid
          , n = e.progress;
        localStorage.setItem("APPBTN_progress_" + t, JSON.stringify({
            progress: n
        }))
    }
    function D(e) {
        return this.status = e.status,
        this.appid = e.appid,
        this.statusChangeCbk = e.statusChangeCbk,
        this.progressChangeCbk = e.progressChangeCbk,
        this.statusReadyCbk = e.statusReadyCbk,
        this.statusRefreshCbk = e.statusRefreshCbk,
        this.appitem = e.appitem,
        this.isInited = !1,
        this.isChecking = !1,
        this.stack = [],
        this.listenEvent(),
        this
    }
    function W(e) {
        var t, n = e.Status;
        switch (e.IsSubscribed && (t = w.reserved),
        n) {
        case 0:
            t = w.un_download;
            break;
        case 1:
            t != w.reserved && (t = w.un_reserve);
            break;
        case 4:
            t = w.try_play;
            break;
        case 5:
            t = w.todo;
            break;
        case 20:
            t != w.reserved && (t = w.un_reserve)
        }
        1 == e.AppType && (t = w.h5),
        2 == e.AppType && (t = w.h5_and_app);
        var i = function(e) {
            try {
                var t = localStorage.getItem("APPBTN_status_" + e);
                return JSON.parse(t || "{}").status || ""
            } catch (e) {
                return ""
            }
        }(e.AppID);
        return i && (i == t || t != w.un_download || i != w.downloading && i != w.pause && i != w.installed && i != w.downloaded || (t = i),
        i != t && i == w.reserved && t == w.un_reserve && (t = i)),
        t
    }
    function R(e, t) {
        var n = W(e);
        r.isAndroid && (n != w.un_reserve && n != w.reserved && n != w.todo && n != w.h5 || t(n)),
        r.isiOS ? t(n) : a.getInstallState({
            packageName: e.PackageName,
            packageUrl: e.AppID + "://"
        }, (function(i) {
            if (-1 != i.err_msg.indexOf("yes")) {
                n = w.installed;
                var r = i.err_msg ? parseInt(i.err_msg.substring(i.err_msg.lastIndexOf("_") + 1)) : 0
                  , o = e.VersionCode;
                r && o && o > r && (n = w.un_update)
            }
            a.queryDownloadTask({
                appid: e.AppID
            }, (function(i) {
                var r = i.download_id
                  , o = i.state
                  , a = i.progress || 0
                  , s = i.reserve_for_wifi;
                -1 != r && -1 == o.indexOf("default") || (n == w.un_reserve || n == w.reserved || n == w.todo || n == w.h5 ? n = n : n != w.installed && n != w.un_update && n != w.h5_and_app && (n = w.un_download),
                n == w.h5_and_app && (n = w.h5),
                1 == s && (n = w.wait_wifi)),
                o.indexOf("_succ") > -1 ? n = w.downloaded : o.indexOf("pause") > -1 ? n = 1 == s ? w.wait_wifi : w.pause : o.indexOf("downloading") > -1 ? n = w.downloading : o.indexOf("_fail") > -1 && n != w.installed && n != w.un_update && (n = w.un_download),
                a && a >= 0 && L({
                    appid: e.AppID,
                    progress: a
                }),
                t(n)
            }
            ))
        }
        ))
    }
    function P(e, t) {
        try {
            for (var n in {
                AppID: "xxxx",
                DownloadInfo: {
                    DownloadURL: "xx",
                    AndroidApkMd5: "xxx",
                    AndroidApkSize: 111
                },
                PackageName: "xxx",
                AppType: 0,
                VersionCode: "xxx",
                HVAppInfo: {
                    LaunchUrl: "xxxx"
                },
                Status: 0,
                IsSubscribed: !1,
                has_sp_launch_privilege: !1
            })
                if (JSON.stringify(e[n]) != JSON.stringify(t[n]))
                    return !1;
            return !0
        } catch (e) {
            return !1
        }
    }
    S.prototype.initAppItem = function(e) {
        this.allAppMap[e] ? this.allAppMap[e].appitem || (this.allAppMap[e].appitem = this.appWareHouse.getAppItem(e)) : this.initAppInfo({
            appid: e
        })
    }
    ,
    S.prototype.initAppInfo = function(e) {
        var t = e.appid
          , n = e.appitem || this.appWareHouse.getAppItem(t)
          , i = e.status || w.un_ready;
        return this.allAppMap[t] = {
            appitem: n,
            doms: [],
            status: i,
            statusStack: [],
            waitingStack: [],
            actionDoing: !1
        },
        this.allAppMap[t]
    }
    ,
    S.prototype.statusReadyCbk = function(e) {
        var t = e.appid
          , n = e.status;
        if (this.allAppMap[t]) {
            this.allAppMap[t].appitem || this.initAppItem(t);
            var i = this.allAppMap[t]
              , r = i.waitingStack;
            if (r.length && console.log("statusReady waitingStack", t, r),
            e.status != w.un_ready) {
                var o, a = i.doms, s = [];
                for (a.forEach((function(e) {
                    e.inited || (s.push(e.dom),
                    e.inited = !0)
                }
                )),
                s.length > 0 && this.throttleSetBtnWordAndProgress(t)({
                    appid: t,
                    doms: s,
                    status: n
                }); r.length; )
                    "Object" == typeof (o = r.pop()) ? o.click() : this.forceAction(t)
            }
        }
    }
    ,
    S.prototype.listenOnDownloaderWidget = function(e) {
        o.on("addToDownloaderWidget", (function(t) {
            e(t)
        }
        ))
    }
    ,
    S.prototype.statusChangeCbk = function(e) {
        var t = e.appid
          , n = e.status
          , i = e.oldStatus;
        this.allAppMap[t] || this.initAppInfo({
            appid: t,
            status: n
        }),
        this.allAppMap[t].appitem || this.initAppItem(t);
        var r = this.allAppMap[t];
        e.status != r.status && (r.status = e.status,
        r.statusStack.push(e.status));
        var o = r.doms
          , a = [];
        e.status != w.un_ready && o.forEach((function(e) {
            a.push(e.dom),
            e.inited = !0
        }
        )),
        this.throttleSetBtnWordAndProgress(t)({
            appid: t,
            doms: a,
            status: n
        }),
        function(e) {
            var t = e.appid
              , n = e.status;
            localStorage.setItem("APPBTN_status_" + t, JSON.stringify({
                status: n
            }))
        }({
            appid: t,
            status: n
        }),
        i == w.downloading && n == w.un_download && L({
            appid: t,
            progress: 0
        })
    }
    ,
    S.prototype.setBtnWord = function(e) {
        var t = e.appid
          , n = e.doms
          , i = e.status
          , r = this.config
          , o = this.getBtnWord(i)
          , a = n || []
          , s = r.wordDomClassName
          , c = this.allAppMap[t].appitem;
        ("wx5a611599efa17e78" == c.AppID || c.is_use_follow) && (i == w.un_reserve && (o = "关注"),
        i == w.reserved && (o = "已关注"));
        var l = this.allAppMap[t].doms;
        a.length || l.forEach((function(e) {
            a.push(e.dom)
        }
        )),
        r.needBtnTextAutoUpdate && a.forEach((function(e) {
            if (s) {
                var t = [];
                e && (t = e.getElementsByClassName(s) || []),
                (t = Array.prototype.slice.call(t, 0)).forEach((function(e) {
                    e.innerText = o
                }
                ))
            } else
                e && (e.innerText = o)
        }
        )),
        this.callback.textChange && this.callback.textChange({
            appid: t,
            doms: a,
            appitem: c,
            status: i,
            btnWord: o,
            STATUS: w
        })
    }
    ,
    S.prototype.setBtnWordAndProgress = function(e) {
        var t = e.appid
          , n = parseInt(e.progress)
          , i = e.doms
          , r = e.status
          , o = this.config;
        !isNaN(n) && "number" == typeof n && o.needProgress ? this.callback && this.callback.progress({
            appid: t,
            progress: n,
            doms: i
        }) : this.setBtnWord({
            appid: t,
            doms: i,
            status: r
        })
    }
    ,
    S.prototype.progressChangeCbk = function(e) {
        var t = e.appid
          , n = e.progress
          , i = this.allAppMap[t];
        i || (i = this.initAppInfo({
            appid: t,
            status: w.downloading
        })),
        i.appitem || this.initAppItem(t);
        var r = (i = this.allAppMap[t]).doms || []
          , a = [];
        r.forEach((function(e) {
            a.push(e.dom)
        }
        )),
        o.emit("manualUpdate", {
            appitem: i.appitem,
            nextStatus: w.downloading
        }, !0),
        this.throttleSetBtnWordAndProgress(t)({
            appid: t,
            progress: n,
            doms: a,
            status: w.downloading
        }),
        n >= 99 ? o.emit("manualUpdate", {
            appitem: i.appitem,
            nextStatus: w.checking
        }, !0) : this.callback.progress && this.callback.progress({
            appid: t,
            progress: n,
            doms: a
        }),
        L({
            appid: t,
            progress: n
        })
    }
    ,
    S.prototype.getBtnWord = function(e) {
        var t = "";
        switch (e = e) {
        case w.un_download:
            t = this.config.androidDownText,
            r.isiOS && (t = this.config.iosDefaultText);
            break;
        case w.un_reserve:
            t = this.config.androidReserveText,
            r.isiOS && (t = this.config.iosReserveText);
            break;
        case w.try_play:
            t = this.config.tryPlayText;
            break;
        case w.todo:
            t = this.config.todoText;
            break;
        case w.h5:
            t = this.config.h5StartText;
            break;
        case w.reserved:
            t = this.config.androidReservedText,
            r.isiOS && (t = this.config.iosReservedText);
            break;
        case w.installed:
            t = this.config.androidStartText;
            break;
        case w.un_update:
            t = this.config.androidUpdateText;
            break;
        case w.checking:
            t = this.config.checkingText;
            break;
        case w.downloading:
            t = this.config.downIngText;
            break;
        case w.install:
            t = this.config.installText;
            break;
        case w.pause:
            t = this.config.pauseText;
            break;
        case w.downloaded:
            t = this.config.installText;
            break;
        case w.wait_wifi:
            t = this.config.waitWifiText;
            break;
        case w.h5_and_app:
            t = r.isiOS && this.config.iosDefaultText || this.config.h5StartText
        }
        return t
    }
    ,
    S.prototype.setBtnText = function(e, t) {
        var n = this.config
          , i = n.wordDomClassName;
        if (!n.needBtnTextAutoUpdate)
            return !1;
        return (i ? Array.prototype.slice.call(e.getElementsByClassName(i), 0) : [e]).forEach((function(e) {
            e.innerText = t
        }
        )),
        !0
    }
    ,
    S.prototype.getVisableAppList = function(e) {
        var t = this.allAppMap
          , n = []
          , i = []
          , r = (e = e || {}).forceQueryAll
          , o = e.refreshAllVisableApp;
        if (r) {
            for (var a in t)
                i.push(a);
            return i
        }
        for (var a in t) {
            var s = t[a].doms || []
              , c = [];
            s.forEach((function(e) {
                c.push(e.dom)
            }
            )),
            s.forEach((function(e) {
                var t = e.dom;
                (r || t && v.isElementInViewport(t) && (o || !e.inited)) && -1 == n.indexOf(a) && n.push(a)
            }
            ))
        }
        return n
    }
    ,
    S.prototype.queryAppInfo = function(e, t) {
        this.appWareHouse.queryAppList({
            appidList: [e],
            callback: function(e) {
                var n = e[0] || {};
                t(n)
            }
        })
    }
    ,
    S.prototype.queryAppListInfo = function(e, t) {
        var n = []
          , i = this.allAppMap;
        e.forEach((function(e) {
            var t;
            i[e] && (t = i[e].appitem),
            t && n.push(t)
        }
        )),
        this.appWareHouse.queryAppList({
            appidList: e,
            appitemList: n,
            callback: function(e) {
                var n = {};
                e.forEach((function(e) {
                    n[e.appid] = {
                        status: e.status,
                        progress: e.progress
                    }
                }
                )),
                t(n)
            }
        })
    }
    ,
    D.prototype.queryStatus = function(e) {
        var t = this.appid
          , n = e.callback
          , i = "boolean" != typeof e.canUseCache || e.canUseCache;
        if (this.isStatusReady() && i) {
            var r = this.getStatus();
            return n(r),
            r
        }
        o.on(k, (function(e) {
            e.appid == t && n(e.status)
        }
        )),
        o.trigger(x, {
            appid: t,
            appitem: this.appitem
        })
    }
    ,
    D.prototype.resetAppItem = function(e) {
        this.appitem = e
    }
    ,
    D.prototype.setStatusInited = function(e) {
        this.appid;
        0 == this.isInited && e && console.log("setStatusInited", e),
        this.isInited = e
    }
    ,
    D.prototype.setStatusChecking = function(e) {
        this.appid;
        1 != this.isChecking || e || console.log("setStatusChecking", e),
        this.isChecking = e
    }
    ,
    D.prototype.isStatusReady = function() {
        return this.isInited && !this.isChecking
    }
    ,
    D.prototype.isStatusInited = function() {
        return this.isInited
    }
    ,
    D.prototype.listenEvent = function() {
        var e = this;
        a.on("wxdownload:state_change", (function(t) {
            var n = t.appid
              , i = t.state;
            n == e.appid && (v.log("wxdownload:state_change", t),
            i.indexOf("_succ") > -1 && e.setStatus(w.install),
            i.indexOf("_pause") > -1 && (1 == t.reserve_for_wifi ? e.setStatus(w.wait_wifi) : e.setStatus(w.pause)),
            i.indexOf("_resumed") > -1 && e.setStatus(w.downloading),
            (i.indexOf("_fail") > -1 || i.indexOf("_remove") > -1 || i.indexOf("wifi") > -1) && (e.setStatusChecking(!0),
            R(e.appitem, (function(t) {
                e.setStatus(t),
                e.setStatusChecking(!1)
            }
            ))))
        }
        )),
        a.on("wxdownload:progress_change", (function(t) {
            var n = t.appid
              , i = t.progress;
            n == e.appid && e.progressChangeCbk({
                appid: n,
                progress: i
            })
        }
        )),
        o.on("manualUpdate", (function(t) {
            var n = t.nextStatus
              , i = t.appitem;
            e.appid == i.AppID && e.setStatus(n)
        }
        )),
        o.on("progressUpdate", (function(t) {
            var n = t.appid
              , i = t.progress;
            n == e.appid && e.progressChangeCbk({
                appid: n,
                progress: i
            })
        }
        )),
        o.on("manualUpdateWifi", (function(t) {
            e.appid == t.appid && e.statusChangeCbk(t)
        }
        ))
    }
    ,
    D.prototype.getStatus = function() {
        return this.status
    }
    ,
    D.prototype.setStatus = function(e) {
        var t = this.status;
        t != e && (v.log("setStatus", {
            appid: this.appid,
            status: e,
            AppType: this.appitem.AppType,
            DownloadInfo: this.appitem.DownloadInfo
        }, this.stack),
        this.status = e,
        this.stack.push(e),
        this.statusChangeCbk({
            appid: this.appid,
            status: e,
            oldStatus: t
        }),
        this.isStatusReady() || (this.setStatusInited(!0),
        this.setStatusChecking(!1)))
    }
    ,
    S.STATUS = w;
    var j = {};
    (r.isiOS || r.isAndroid) && (i.window.WXGAME && i.window.WXGAME.AppBtn ? (v.log("top window WXGAME AppBtn ready"),
    j = i.window.WXGAME.AppBtn) : window.WXGAME && window.WXGAME.AppBtn ? (v.log("WXGAME AppBtn ready"),
    j = window.WXGAME.AppBtn) : j = S),
    e.exports = j
}
, function(e, t, n) {
    "use strict";
    function i() {
        this.queue = {},
        this.state = {},
        this.objs = {}
    }
    var r;
    i.prototype.on = function(e, t) {
        this.state[e] ? t(this.objs[e]) : (this.queue[e] || (this.queue[e] = []),
        this.queue[e].push(t))
    }
    ,
    i.prototype.emit = function(e, t, n) {
        t = t || null;
        this.state[e] = !n,
        this.objs[e] = t,
        this.queue[e] || (this.queue[e] = []),
        this.queue[e].forEach((function(e) {
            e(t)
        }
        ))
    }
    ,
    i.prototype.trigger = function(e, t) {
        t = t || null;
        this.objs[e] = t,
        this.queue[e] || (this.queue[e] = []),
        this.queue[e].forEach((function(e) {
            e(t)
        }
        ))
    }
    ,
    i.prototype.emitOnce = function(e, t) {
        t = t || null,
        this.emit(e, t),
        this.queue[e] = [],
        this.state[e] = !1,
        this.objs[e] = {}
    }
    ;
    var o = (r || (r = new i),
    r)
      , a = n(0);
    a.window.UniBus = a.window.UniBus || o,
    e.exports = o
}
, function(e, t, n) {
    "use strict";
    var i = n(2)(n(4))
      , r = n(10)
      , o = n(3)
      , a = n(6)
      , s = n(17)
      , c = n(0)
      , l = n(23)
      , u = n(1)
      , d = function(e, t) {
        var n, i = {};
        for (n in e)
            Object.prototype.hasOwnProperty.call(e, n) && (i[n] = e[n]);
        for (n in t)
            Object.prototype.hasOwnProperty.call(t, n) && (i[n] = t[n]);
        return i
    }
      , p = d(n(44), n(32));
    function f() {
        if (u.isCSR)
            return {
                isIOS: !1,
                isPad: !1,
                isAndroid: !0,
                isWechat: !0,
                isDebug: !1,
                wxVersion: u.clientVersion(!0),
                isWPcWechat: !1,
                isPC: !1
            };
        var e = -1 !== location.search.indexOf("debug=1");
        return {
            isIOS: u.isIOS,
            isPad: u.isPad,
            isAndroid: u.isAndroid,
            isWechat: u.isWechat,
            isDebug: e,
            wxVersion: u.clientVersion(!0),
            isWPcWechat: u.isWPcWechat,
            isPC: u.isPC
        }
    }
    function g(e) {
        var t = (navigator.userAgent || navigator.wxuserAgent || str).match(/MicroMessenger\/([\d\.]+)/i)
          , n = "";
        if (!(t && t.length > 1))
            return !1;
        n = (n = t[1]).split("."),
        e = e.split(".");
        for (var i = 0; i < n.length && i < e.length; i++) {
            if ((+n[i] || 0) > (+e[i] || 0))
                return !0;
            if ((+n[i] || 0) < (+e[i] || 0))
                return !1
        }
        return !1
    }
    e.exports = {
        ajaxRequest: r,
        ajaxCall: r,
        getQueryStr: o.getQueryStr,
        mapToStr: a.mapToStr,
        extend: d,
        tmpl: a.format,
        filterXSS: a.filterXSS,
        clientInfo: f(),
        openWithWebView: l.openUrl,
        setTitle: function(e) {
            var t = f();
            function n() {
                WeixinJSBridge.invoke("setPageTitle", {
                    title: e
                }, (function(e) {}
                ))
            }
            if (t.isWechat) {
                if (g("6.0.2") && (t.isAndroid || "yes" === window.__wxjs_is_wkwebview || window.__wxjs_is_wkwebview))
                    return void (c.window.WeixinJSBridge ? n() : (document.addEventListener("WeixinJSBridgeReady", (function() {
                        n()
                    }
                    )),
                    document.title = e));
                if (document.title = e,
                t.isWPcWechat)
                    return;
                if (t.isIOS) {
                    var i = document.createElement("iframe");
                    i.style.cssText = "width:0px;height:0px;display:none;",
                    i.src = location.protocol + "//wximg.gtimg.com/tmt/game/dist/img/wgui/placeholder/1x1.png",
                    i.onload = function() {
                        setTimeout((function() {
                            i.onload = null,
                            document.body.removeChild(i)
                        }
                        ), 0)
                    }
                    ,
                    document.body.appendChild(i)
                }
            } else
                document.title = e
        },
        throttle: function(e, t, n) {
            var i;
            return function() {
                var r = arguments;
                return clearTimeout(i),
                i = setTimeout((function() {
                    e.apply(n, r),
                    i = null
                }
                ), t)
            }
        },
        debounce: function(e, t, n) {
            var i;
            return function() {
                var r = arguments;
                i || (i = setTimeout((function() {
                    e.apply(n, r),
                    i = null
                }
                ), t))
            }
        },
        filterImg: a.filterImg,
        filterUrlByKey: a.filterUrlByKey,
        filterParamByKey: a.filterParamByKey,
        extendDeep: function() {
            for (var e = arguments.length, t = {}, n = 0; n < e; n++)
                for (var i in arguments[n])
                    t[i] = arguments[n][i];
            return t
        },
        UI: p,
        ajax: function(e, t, n, r, o) {
            if ("function" == typeof o)
                var c = o;
            else if ("object" === (0,
            i.default)(o)) {
                var l = d({
                    method: "GET",
                    timeout: 15e3
                }, o);
                c = arguments[5]
            } else
                l = {};
            return this._QMAjax = new s(e,l.method,l.timeout),
            (new Date).getTime(),
            this._QMAjax.onComplete = function(e) {
                var t = {}
                  , i = (e.responseText || "").replace(/[\u0000-\u001f\u000B\u000C\u00A0\uFEFF\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u202E\u202D]/g, "");
                try {
                    t = JSON.parse(i)
                } catch (e) {
                    try {
                        t = new Function("return " + i)()
                    } catch (e) {
                        t = {}
                    }
                }
                n && n(t);
                (new Date).getTime()
            }
            ,
            this._QMAjax.onError = function(e, t) {
                "ok" !== t && r && r(t);
                try {
                    JSON.parse(e.responseText)
                } catch (t) {
                    ({
                        responseText: e.responseText
                    })
                }
                (new Date).getTime()
            }
            ,
            this._QMAjax.onTimeout = c,
            "string" == typeof t ? this._QMAjax.send(t) : this._QMAjax.send(a.mapToStr(t)),
            this._QMAjax
        }
    }
}
, function(e, t, n) {
    "use strict";
    n(1).isCSR ? e.exports = {
        alert: function() {},
        closeAlert: function() {},
        showLoading: function() {},
        hideLoading: function() {},
        showTips: function() {}
    } : function(t) {
        var i = n(0)
          , r = n(22)
          , o = r.extend(n(44), n(32))
          , a = n(11)
          , s = function() {
            if (top != window && a.isiOS)
                return !0;
            return !1
        }()
          , c = !1
          , l = ""
          , u = 0;
        function d(e) {
            l += e;
            try {
                u = i.window.document.body.scrollTop || document.body.scrollTop,
                c = !0
            } catch (e) {}
            var t = i.window.document.documentElement.clientHeight;
            document.body.firstElementChild.style.height = t + "px",
            document.body.firstElementChild.style.overflow = "hidden"
        }
        function p(e) {
            s && "" === (l = "loading" === e ? l.replace(/loading/g, "") : l.replace(e, "")) && (document.body.firstElementChild.style.height = "",
            u > 0 && !0 === c && i.window.scrollTo(0, u),
            document.body.firstElementChild.style.overflow = "",
            c = !1)
        }
        t.alert = function(e, t) {
            t = t || {};
            var n = r.extend(t, {});
            s && (d("alert"),
            n.confirmCb = function() {
                p("alert"),
                t.confirmCb && t.confirmCb()
            }
            ,
            n.closeCb = function() {
                p("alert"),
                t.closeCb && t.closeCb()
            }
            ),
            o.alert(e, n)
        }
        ,
        t.closeAlert = function() {
            p("alert"),
            o.closeAlert()
        }
        ,
        t.showLoading = function(e, t) {
            t = t || {};
            var n = r.extend(t, {});
            s && (d("loading"),
            n.hideCb = function() {
                p("loading"),
                t.hideCb()
            }
            ),
            o.showLoading(e, n)
        }
        ,
        t.hideLoading = function() {
            s && p("loading"),
            o.hideLoading()
        }
        ,
        t.showTips = function(e, t) {
            t = t || {};
            var n = r.extend(t, {});
            s && (d("loading"),
            n.hideCb = function() {
                p("loading"),
                t.hideCb && t.hideCb()
            }
            ),
            o.showLoading(e, n)
        }
        ,
        e.exports = t
    }({})
}
, function(e, t, n) {
    "use strict";
    var i = n(6).format
      , r = n(10)
      , o = n(19)
      , a = n(3)
      , s = n(7);
    n(39),
    n(40);
    var c = function(e) {
        var t = e.getBoundingClientRect()
          , n = t.width / 2
          , i = t.height / 2
          , r = window.innerHeight
          , o = window.innerWidth;
        document.documentElement.clientHeight,
        document.documentElement.clientWidth;
        return t.height > 0 && t.width > 0 && (t.top >= 0 && t.top <= r - i || t.bottom >= i && t.bottom <= r) && (t.left >= 0 && t.left <= o - n || t.right >= n && t.right <= o)
    }
      , l = function(e, t, n) {
        var i;
        return function() {
            var r = arguments;
            i || (i = setTimeout((function() {
                e.apply(n, r),
                i = null
            }
            ), t))
        }
    }
      , u = function() {
        var e = arguments;
        try {
            window.logInfo || logInfo ? logInfo.apply(window, e) : console.log.apply(null, e)
        } catch (e) {
            console.log(e)
        }
    };
    function d(e) {
        var t = this;
        return (t = d.instance ? d.instance : this).appid = e.appid,
        t.succCbk = e.success,
        t.cancelCbk = e.cancel,
        t.failCbk = e.fail,
        t.ssid = e.ssid || 0,
        t.waitingList = [],
        t.reportHandler = t.throttleReport(),
        d.instance ? (d.instance.init(),
        d.instance) : (this.isInited = !1,
        this.doms = {},
        this.data = {},
        this.init(),
        d.instance = this,
        this)
    }
    d.instance = null,
    d.prototype.init = function() {
        var e = this;
        Promise.all([e.appendCSS(), e.getLastData(), e.queryPrivilege()]).then((function(t) {
            var n = t[1]
              , i = t[2];
            0 == i.errcode ? (e.data = i,
            u("[privilege popup]", "data", i),
            u("[privilege popup]", "last data", n),
            e.isDifferent(i, n) && i.function_list && i.function_list.length ? (e.initView(i),
            e.bindEvent(),
            e.reportPV(),
            u("[privilege popup]", "initView")) : (e.succCbk({
                extern_info: i.extern_info
            }),
            u("[privilege popup]", "same as last time, not show up")),
            e.storeData(i)) : (e.failCbk(),
            u("[privilege popup]", "get data fail", JSON.stringify(i)))
        }
        )).catch((function(t) {
            e.failCbk(),
            u("[privilege popup]", "promise err", JSON.stringify(t))
        }
        ))
    }
    ,
    d.prototype.isDifferent = function(e, t) {
        var n = !1
          , i = e.function_list || []
          , r = t.function_list || []
          , o = {}
          , a = {};
        for (var s in i.forEach((function(e) {
            o[e.key] = e.state
        }
        )),
        r.forEach((function(e) {
            a[e.key] = e.state
        }
        )),
        o)
            s in a || (n = !0),
            o[s] != a[s] && (n = !0);
        for (var s in a)
            s in o || (n = !0),
            o[s] != a[s] && (n = !0);
        return n
    }
    ;
    var p = "privilege_data_";
    d.prototype.storeData = function(e) {
        s.setGameData({
            key: p + this.appid,
            value: JSON.stringify(e)
        })
    }
    ,
    d.prototype.getLastData = function(e) {
        var t = this;
        return new Promise((function(e, n) {
            s.getGameData({
                key: p + t.appid
            }, (function(t) {
                if (-1 != t.err_msg.indexOf("ok")) {
                    var i;
                    try {
                        i = JSON.parse(t.value)
                    } catch (e) {
                        i = {}
                    }
                    e(i)
                } else
                    n()
            }
            ))
        }
        ))
    }
    ,
    d.prototype.appendCSS = function() {
        var e = this;
        return new Promise((function(t, n) {
            if (e.cssLink)
                t();
            else {
                var i = document.createElement("link");
                i.setAttribute("rel", "stylesheet"),
                i.href = "//res.wx.qq.com/wechatgame/product/wechat-download/dist/css/style-privilege.57446412.css",
                i.onload = function() {
                    t()
                }
                ,
                i.onerror = function() {
                    n()
                }
                ,
                document.head.appendChild(i),
                e.cssLink = i
            }
        }
        ))
    }
    ,
    d.prototype.reportPV = function() {
        var e = this
          , t = e.doms.container
          , n = Array.prototype.slice.call(e.doms.list.getElementsByClassName("game-download__privilege-item"), 0)
          , i = e.data.function_list;
        !t.getAttribute("reported") && c(t) && (e.report({
            uia: 0,
            aid: 1
        }),
        t.setAttribute("reported", !0)),
        n.forEach((function(t, n) {
            var r = i[n];
            !t.getAttribute("reported") && c(t) && (e.report({
                uia: 8501,
                aid: 1,
                pid: n + 1,
                ext: encodeURIComponent(JSON.stringify({
                    title: r.title,
                    state: r.state
                }))
            }),
            t.setAttribute("reported", !0))
        }
        ))
    }
    ,
    d.prototype.report = function(e) {
        var t = {
            scene: "iSceneId",
            uia: "iUIArea",
            pid: "iPositionId",
            ext: "sExternInfo",
            aid: "iActionId",
            op: "iOpType",
            gid: "sGameId",
            ssid: "iSourceSceneId"
        }
          , n = {
            gid: this.appid,
            scene: 85,
            op: 1,
            ssid: this.ssid
        }
          , i = a.extend(n, e);
        for (var r in i)
            t[r] && (i[t[r]] = i[r],
            delete i[r]);
        this.waitingList.push(i),
        this.reportHandler(i)
    }
    ,
    d.prototype.throttleReport = function(e) {
        var t = this;
        return l((function(e) {
            o(t.waitingList),
            t.waitingList = []
        }
        ), 100)
    }
    ,
    d.prototype.queryPrivilege = function() {
        var e = this;
        return new Promise((function(t, n) {
            r("/cgi-bin/gamewap/getlaunchprivilegefunctioninfo", {
                appid: e.appid
            }, (function(e) {
                t(e)
            }
            ), (function() {
                n()
            }
            ))
        }
        ))
    }
    ,
    d.prototype.unBindEvent = function() {
        this.doms.btn.onclick = null,
        this.doms.mask.onclick = null,
        this.doms.container.ontouchmove = null
    }
    ,
    d.prototype.hideContainer = function() {
        u("[privilege popup]", "hide container", this.appid);
        document.getElementsByTagName("html")[0];
        this.doms.container.style.display = "none",
        document.body.className = document.body.className.replace(" game-download__body-stop-scroll", "")
    }
    ,
    d.prototype.showContainer = function() {
        u("[privilege popup]", "show container", this.appid);
        document.getElementsByTagName("html")[0];
        this.doms.container.style.display = "",
        document.body.className += " game-download__body-stop-scroll"
    }
    ,
    d.prototype.bindEvent = function() {
        var e = this;
        e.doms.btn.onclick = function() {
            u("[privilege popup]", "enter game", e.appid),
            e.hideContainer(),
            e.report({
                uia: 8502,
                pid: 1,
                aid: 2,
                op: 2
            }),
            setTimeout((function() {
                e.succCbk({
                    appid: e.appid,
                    extern_info: e.data.extern_info || ""
                })
            }
            ), 20)
        }
        ,
        e.doms.mask.onclick = function() {
            e.cancelCbk({
                appid: e.appid
            }),
            e.hideContainer()
        }
        ;
        var t, n = e.doms.list;
        n.ontouchstart = function(e) {
            document.body.scrollTop,
            document.body.scrollLeft,
            t = e.changedTouches[0].screenY
        }
        ,
        e.doms.mask.onscroll = function(e) {}
        ,
        e.doms.container.ontouchmove = function(t) {
            t.changedTouches[0];
            for (var n = t.target, i = !1; n != e.doms.container; ) {
                if (n == e.doms.list) {
                    i = !0;
                    break
                }
                n = n.parentNode
            }
            i || t.preventDefault(),
            e.reportPV()
        }
        ,
        n.ontouchmove = function(e) {
            var i = e.changedTouches
              , r = !1
              , o = this.scrollTop
              , a = n.offsetHeight
              , s = n.scrollHeight;
            if (i.length > 0) {
                var c = (i[0] || {}).screenY;
                if (r = !(c - t > 0 && o <= 0) && !(c - t < 0 && o + a >= s),
                console.log("set scrollTop", document.body.scrollTop),
                r)
                    return void e.stopPropagation();
                e.preventDefault()
            }
        }
    }
    ,
    d.prototype.initView = function(e) {
        var t = e.icon && e.icon.length
          , n = i('        <div class="game-download__privilege-top {noIconClass}">             <div class="game-download__privilege-top-icon">                 <img src="{icon}">             </div>             <div class="game-download__privilege-top-text">                 <div class="game-download__privilege-top-title">{title}</div>                 <div class="game-download__privilege-top-subtitle">{sub_title}</div>             </div>         </div>     ', {
            noIconClass: t ? "" : "game-download__privilege-top_without-icon",
            title: e.title,
            icon: e.icon ? e.icon : "//"
        });
        n = i(n, {
            sub_title: e.sub_title || ""
        }, !1);
        var r = ""
          , o = {
            1: "game-download__privilege-item-state_available",
            2: "game-download__privilege-item-state_new",
            3: "game-download__privilege-item_disable",
            4: "game-download__privilege-item_disable",
            5: "game-download__privilege-item_disable",
            6: "game-download__privilege-item_disable"
        };
        e.function_list.forEach((function(e) {
            var t = ""
              , n = "";
            1 == e.state || 2 == e.state ? n = o[e.state] : t = o[e.state],
            e.desc && e.desc.length && (n = ""),
            r += i('         <div class="game-download__privilege-item {itemClass}">             <span class="game-download__privilege-item-icon">                 <img src="{icon}">             </span>             <span class="game-download__privilege-item-text">{title}</span>             <span class="game-download__privilege-item-state_base {stateClass}">                 {desc}             </span>         </div>     ', {
                itemClass: t,
                stateClass: n,
                desc: e.desc || "",
                title: e.title || "",
                icon: e.icon || "//"
            })
        }
        ));
        var a, s = i('         <div style="z-index:100000;position: fixed;" class="game-download">             <div class="game-download__privilege-popup">                 {topHtml}                 <div class="game-download__privilege-list">                     {itemListHtml}                </div>                 <div class="game-download__privilege-bottom">                     <div class="game-download__privilege-bottom-btn">进入游戏</div>                 </div>             </div>             <div class="game-download__privilege-mask"></div>         </div>     ', {
            itemListHtml: r,
            topHtml: n,
            title: e.title,
            sub_title: e.sub_title || ""
        }, !1);
        this.doms.container ? (a = this.doms.container).innerHTML = s : ((a = document.createElement("div")).style.width = "100%",
        a.style.height = "100%",
        a.style.position = "fixed",
        a.style.top = "0",
        a.style.zIndex = "10000",
        a.style.display = "none",
        a.innerHTML = s,
        document.body.appendChild(a),
        console.warn("append child", a),
        this.isInited = !0),
        this.doms = {
            container: a,
            mask: a.getElementsByClassName("game-download__privilege-mask")[0],
            btn: a.getElementsByClassName("game-download__privilege-bottom-btn")[0],
            list: a.getElementsByClassName("game-download__privilege-list")[0]
        },
        this.showContainer()
    }
    ,
    e.exports = d
}
, function(e, t, n) {
    "use strict";
    var i = n(10)
      , r = n(19)
      , o = n(3)
      , a = n(1);
    function s(e) {
        (e = e || {}).appitem = e.appitem || {},
        this.option = e,
        this.appid = e.appid || "",
        this.icon = e.appitem.IconURL || "",
        this.name = e.appitem.Name || "",
        this.uiarea = e.uiarea || 3411,
        this.scene = e.scene || 34,
        this.successCbk = e.success || function() {}
        ,
        this.cancelCbk = e.cancel || function() {}
        ,
        this.init(),
        WXGAME && WXGAME.WxBridge.invoke("setGameTab", {
            isShowTab: 0
        })
    }
    s.prototype.init = function() {
        var e = this;
        this.insertStyle(),
        this.insertDom(),
        this.insertData(),
        this.insertButton(),
        this.dialogDom = document.querySelector(".launch-privilege-dialog"),
        this.maskDom = document.querySelector(".launch-privilege-dialog__mask"),
        this.panelDom = document.querySelector(".launch-privilege-dialog__panel"),
        this.bottomDom = document.querySelector(".launch-privilege-dialog__bottom"),
        setTimeout((function() {
            e.dialogDom.style.bottom = 0,
            e.maskDom.style.opacity = 1,
            e.panelDom.style.bottom = 0,
            e.report({
                op: 1
            })
        }
        ), 0),
        this.bindEvent(),
        this.getData().then((function(t) {
            if (0 === t.errcode) {
                var n = t.launch_privilege || {};
                e.updateData(n)
            }
        }
        )).catch((function(e) {}
        ))
    }
    ,
    s.prototype.report = function(e) {
        var t = {
            scene: "iSceneId",
            uia: "iUIArea",
            pid: "iPositionId",
            ext: "sExternInfo",
            aid: "iActionId",
            op: "iOpType",
            gid: "sGameId",
            ssid: "iSourceSceneId"
        }
          , n = {
            gid: this.appid,
            scene: this.scene,
            uia: this.uiarea,
            ssid: this.ssid
        }
          , i = o.extend(n, e);
        for (var a in i)
            t[a] && (i[t[a]] = i[a],
            delete i[a]);
        console.log(i),
        r([i])
    }
    ,
    s.prototype.getData = function() {
        var e = this;
        return new Promise((function(t, n) {
            i("/cgi-bin/gamewap/getgamebaseextrafor", {
                appid: e.appid,
                need_launch_privilege: !0
            }, (function(e) {
                t(e)
            }
            ), (function() {
                n()
            }
            ))
        }
        ))
    }
    ,
    s.prototype.updateData = function(e) {
        var t = document.querySelector(".launch-privilege-dialog-desc")
          , n = document.querySelector(".launch-privilege-dialog__list");
        t && (t.innerHTML = e.title || "从微信启动游戏，享启动特权");
        var i = [];
        if (i = n && e.item_list && e.item_list.length ? e.item_list : [{
            icon_url: "https://res.wx.qq.com/wechatgame/product/cdn/moment/gift_7595b90f.svg",
            desc: "启动礼包"
        }, {
            icon_url: "https://res.wx.qq.com/wechatgame/product/cdn/moment/gift_43be081a.svg",
            desc: "金币/经验加成"
        }, {
            icon_url: "https://res.wx.qq.com/wechatgame/product/cdn/moment/7da3c830.svg",
            desc: "游戏内身份展示"
        }]) {
            for (var r = "", o = 0, a = i.length; o < a; o++) {
                r += ['<div class="launch-privilege-dialog__item">', '<div class="launch-privilege-dialog__item-icon" style="background-image:url(' + i[o].icon_url + ')"></div>', '<div class="launch-privilege-dialog__item-desc">' + i[o].desc + "</div>", "</div>"].join("")
            }
            n.innerHTML = r
        }
    }
    ,
    s.prototype.insertStyle = function() {
        if (!document.getElementById("launch_privilege_dialog_style")) {
            var e = document.createElement("style");
            e.setAttribute("type", "text/css"),
            e.setAttribute("id", "launch_privilege_dialog_style");
            e.innerHTML = "\n.launch-privilege-dialog {\n\tposition: fixed;\n\tleft: 0;\n\tbottom: -100%;\n\twidth: 100%;\n\theight: 100%;\n\tz-index: 100002;\n}\n\n.launch-privilege-dialog__mask {\n\tposition: absolute;\n\tleft: 0;\n\ttop: 0;\n\twidth: 100%;\n\theight: 100%;\n\topacity: 0;\n\tbackground-color: rgba(0, 0, 0, 0.6);\n\ttransition: opacity .1s linear\n}\n\n.launch-privilege-dialog__panel {\n\tposition: absolute;\n\tleft: 0;\n\tbottom: -100%;\n\twidth: 100%;\n\tpadding: 0 1.1rem;\n\tmin-height: 300px;\n\tbackground: #ffffff;\n\tborder-top-left-radius: 12PX;\n\tborder-top-right-radius: 12PX;\n    transition: bottom .3s ease-in-out;\n    color: rgba(0,0,0,0.9);\n}\n.wg_dark_mode .launch-privilege-dialog__panel {\n    background: #232323;\n    color: rgba(255,255,255,0.8);\n}\n\n.launch-privilege-dialog__title {\n\twidth: 100%;\n\theight: 64px;\n\tdisplay: flex;\n}\n\n.launch-privilege-dialog__icon {\n\twidth: 24px;\n\theight: 64px;\n\tmargin-right: 8px;\n\tbackground-repeat: no-repeat;\n\tbackground-size: 24PX 24PX;\n\tbackground-position: center;\n}\n\n.launch-privilege-dialog__title {\n\theight: 64px;\n\tline-height: 64px;\n\topacity: 0.9;\n\tfont-family: PingFangSC-Medium;\n\tfont-size: 15PX;\n}\n\n.launch-privilege-dialog-desc {\n\topacity: 0.9;\n\tfont-family: PingFangSC-Medium;\n\tfont-size: 17PX;\n\tvarter-spacing: 0;\n\tline-height: 24px;\n\theight: 24px\n}\n\n.launch-privilege-dialog__list {\n\twidth: 100%;\n\tdisplay: flex;\n\tmin-height: 96px;\n\tflex-wrap: wrap;\n}\n\n.launch-privilege-dialog__item {\n\twidth: 55%;\n\tdisplay: flex;\n\tmargin-top: 24px;\n}\n\n.launch-privilege-dialog__item:nth-child(2n) {\n\twidth: 45%;\n}\n\n.launch-privilege-dialog__item-icon {\n\twidth: 24px;\n\theight: 24px;\n\tmargin-right: 8px;\n\tbackground-repeat: no-repeat;\n\tbackground-size: 24PX 24PX;\n\tbackground-position: center;\n}\n\n.launch-privilege-dialog__item-desc {\n\theight: 24px;\n\tline-height: 24px;\n\tfont-family: PingFang-SC-Regular;\n\tfont-size: 14PX;\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n\twhite-space: nowrap!important;\n\tmax-width: 75%\n}\n\n.launch-privilege-dialog__bottom {\n\twidth: 11.7rem;\n\tdisplay: flex;\n\tpadding: 30px 0px;\n\tjustify-content: space-between;\n\tmargin: 0 auto;\n}\n\n.launch-privilege-dialog__button {\n\twidth: 5.5rem;\n\theight: 2rem;\n    background: rgba(0, 0, 0, 0.05);\n\tcolor: #06ae56;\n\tborder-radius: 4px;\n\tfont-family: PingFangSC-Medium;\n\tfont-size: 17PX;\n\tvarter-spacing: 1px;\n\ttext-align: center;\n\tline-height: 2rem;\n}\n.wg_dark_mode .launch-privilege-dialog__button {\n    background: rgba(255, 255, 255, 0.08);\n\tcolor: rgba(255, 255, 255, 0.8);\n}\n\n.launch-privilege-dialog__button-right {\n\tbackground: #07C160;\n\tcolor: #FFFFFF;\n}\n.wg_dark_mode .launch-privilege-dialog__button-right {\n\tbackground: #07C160;\n\tcolor: #FFFFFF;\n}\n",
            document.getElementsByTagName("head")[0].appendChild(e)
        }
    }
    ,
    s.prototype.insertDom = function() {
        if (!document.getElementById("launch_privilege_dialog_dom")) {
            var e = document.createElement("div");
            e.setAttribute("id", "launch_privilege_dialog_dom"),
            e.classList.add("launch-privilege-dialog"),
            a.isDarkMode && e.classList.add("wg_dark_mode");
            e.innerHTML = ['<div class="launch-privilege-dialog__mask"></div>', '<div class="launch-privilege-dialog__panel">', '<div class="launch-privilege-dialog__title"></div>', '<div class="launch-privilege-dialog__content">', '<div class="launch-privilege-dialog-desc"> </div>', "</div>", '<div class="launch-privilege-dialog__bottom"></div>', "</div>"].join(""),
            document.body.appendChild(e)
        }
    }
    ,
    s.prototype.insertData = function() {
        var e = ['<div class="launch-privilege-dialog__icon" style="background-image:url(' + this.icon + ')"></div>', '<div class="launch-privilege-dialog__name">即将启动“' + this.name + "”</div>"];
        (t = document.querySelector(".launch-privilege-dialog__title")) && (t.innerHTML = e.join(""));
        var t;
        e = '<div class="launch-privilege-dialog__list"></div>';
        (t = document.querySelector(".launch-privilege-dialog__content")) && (t.innerHTML += e)
    }
    ,
    s.prototype.insertButton = function() {
        var e = document.querySelector(".launch-privilege-dialog__bottom");
        e && (e.innerHTML += ['<div class="launch-privilege-dialog__button launch-privilege-dialog__button-left">取消</div>', '<div class="launch-privilege-dialog__button launch-privilege-dialog__button-right">启动</div>'].join(""))
    }
    ,
    s.prototype.bindEvent = function() {
        var e = this;
        this.maskDom.addEventListener("click", (function() {
            e.closeEvent()
        }
        )),
        this.bottomDom.addEventListener("click", (function(t) {
            (t.target && t.target.className || "").indexOf("left") > -1 ? (e.closeEvent(),
            e.report({
                pid: 2,
                aid: 61
            })) : (e.report({
                pid: 1,
                aid: 22
            }),
            e.successCbk(),
            e.closeEvent())
        }
        ))
    }
    ,
    s.prototype.closeEvent = function() {
        var e = this;
        e.panelDom.style.bottom = "-100%",
        setTimeout((function() {
            e.maskDom.style.opacity = 0,
            WXGAME && WXGAME.WxBridge.invoke("setGameTab", {
                isShowTab: 1
            })
        }
        ), 200),
        setTimeout((function() {
            e.dialogDom.style.bottom = "-100%",
            e.dialogDom.parentNode.removeChild(e.dialogDom)
        }
        ), 350),
        this.cancelCbk()
    }
    ,
    e.exports = s
}
, function(e, t, n) {
    "use strict";
    var i = n(10)
      , r = n(19)
      , o = n(3)
      , a = n(1)
      , s = n(23)
      , c = n(6);
    function l(e) {
        (e = e || {}).appitem = e.appitem || {},
        this.option = e,
        this.appid = e.appid || e.appitem.AppID || "",
        this.icon = e.appitem.IconURL || "",
        this.name = e.appitem.Name || "",
        this.uiarea = e.uiarea || 3412,
        this.scene = e.scene || 34,
        this.type = e.type || "预约",
        this.autoDownload = e.autoDownload,
        this.wifiChecked = !1,
        this.hasCard = !1,
        this.closeCbk = e.close || function() {}
        ,
        this.jumpCbk = e.jumpCbk || function() {}
        ,
        this.init(),
        this.loadData(),
        WXGAME && WXGAME.WxBridge.invoke("setGameTab", {
            isShowTab: 0
        })
    }
    l.prototype.init = function() {
        var e = this;
        this.insertStyle(),
        this.insertDom(),
        this.insertData(),
        this.insertButton(),
        this.dialogDom = document.querySelector(".appbtn-reserve-dialog"),
        this.maskDom = document.querySelector(".appbtn-reserve-dialog__mask"),
        this.panelDom = document.querySelector(".appbtn-reserve-dialog__panel"),
        this.bottomDom = document.querySelector(".appbtn-reserve-dialog__button"),
        setTimeout((function() {
            e.dialogDom.style.bottom = 0,
            e.maskDom.style.opacity = 1,
            e.panelDom.style.bottom = 0,
            e.report({
                aid: 1,
                op: 1
            })
        }
        ), 100),
        this.bindEvent()
    }
    ,
    l.prototype.loadData = function() {
        var e = this;
        i("/cgi-bin/gamewap/getgamebaseextrafor", {
            appid: e.appid,
            need_subscribe_info: !0,
            need_group_info: !0,
            need_wecom_chat_room: !0
        }, (function(t) {
            t && 0 === t.errcode && e.afterLoad(t)
        }
        ), (function() {}
        ))
    }
    ,
    l.prototype.report = function(e) {
        var t = {
            scene: "iSceneId",
            uia: "iUIArea",
            pid: "iPositionId",
            ext: "sExternInfo",
            aid: "iActionId",
            op: "iOpType",
            gid: "sGameId",
            ssid: "iSourceSceneId",
            astsuts: "sActionStatus"
        }
          , n = {
            gid: this.appid,
            scene: this.scene,
            uia: this.uiarea,
            ssid: this.ssid
        }
          , i = o.extend(n, e);
        for (var a in i)
            t[a] && (i[t[a]] = i[a],
            delete i[a]);
        r([i])
    }
    ,
    l.prototype.getData = function() {
        var e = this;
        return new Promise((function(t, n) {
            i("/cgi-bin/gamewap/getgamebaseextrafor", {
                appid: e.appid,
                need_launch_privilege: !0,
                need_group_info: !0
            }, (function(e) {
                t(e)
            }
            ), (function() {
                n()
            }
            ))
        }
        ))
    }
    ,
    l.prototype.afterLoad = function(e) {
        this.updateData(e)
    }
    ,
    l.prototype.updateData = function(e) {
        var t = this
          , n = document.querySelector(".appbtn-reserve-dialog__list");
        this.hasCard = e.subscribe_info && e.subscribe_info.has_wifi_download_card;
        var i = []
          , r = e.group_info;
        r && e.subscribe_info && e.subscribe_info.has_group && i.push({
            iconUrl: r.group_icon || this.icon || "",
            title: "去" + (this.name.length > 5 ? this.name.substring(0, 4) + "... " : this.name) + "圈看更多内容",
            desc: c.filterXSS(r.desc) || "更多资讯活动抢先看",
            showIcon: !0,
            iconText: "进入圈子",
            jumpUrl: r.jump_url || "https://game.weixin.qq.com/cgi-bin/h5/static/appcenter/singlecircle.html?ssid=3412&appid=" + this.appid,
            type: "community"
        });
        var o = e.wecom_chat_room;
        o && i.push({
            iconUrl: o.icon_url || this.icon || "",
            title: o.title || "",
            desc: c.filterXSS(o.desc) || "更多资讯活动抢先看",
            showIcon: !0,
            iconText: "加入官群",
            jumpUrl: o.jump_url || "https://game.weixin.qq.com/cgi-bin/h5/static/appcenter/singlecircle.html?ssid=3412&appid=" + this.appid,
            type: "group"
        });
        var a = document.querySelector(".appbtn-reserve-dialog__content")
          , s = document.querySelector(".appbtn-reserve-dialog-desc");
        if (i.length) {
            for (var l = "", u = 0, d = i.length; u < d; u++) {
                var p = ['<div class="appbtn-reserve-dialog__item ' + (i[u].jumpUrl ? "appbtn-reserve-dialog__item-jump" : "") + '" data-url="' + i[u].jumpUrl + '" data-type="' + i[u].type + '">', '<div class="appbtn-reserve-dialog__item-icon" style="background-image:url(' + i[u].iconUrl + ')"></div>', '<div class="appbtn-reserve-dialog__item-center">', '<div class="appbtn-reserve-dialog__item-title">' + (i[u].title || "") + "</div>", '<div class="appbtn-reserve-dialog__item-desc">' + (i[u].desc || "") + "</div>", i[u].meta ? '<div class="appbtn-reserve-dialog__item-meta">' + (i[u].meta || "") + "</div>" : "", "</div>"];
                i[u].showIcon && (p = p.concat(['<div class="appbtn-reserve-dialog__item-right">', '<div class="appbtn-reserve-dialog__item-button">' + i[u].iconText + "</div>", "</div>", "</div>"])),
                p.push("</div>"),
                l += p.join("")
            }
            n.innerHTML = l,
            a && (a.style.display = "block")
        } else
            a && (a.style.display = "none"),
            s && (s.style.display = "none");
        setTimeout((function() {
            t.bindListEvent()
        }
        ), 100)
    }
    ,
    l.prototype.insertStyle = function() {
        if (!document.getElementById("appbtn-reserve-dialog_style")) {
            var e = document.createElement("style");
            e.setAttribute("type", "text/css"),
            e.setAttribute("id", "appbtn-reserve-dialog_style");
            var t = '\n.appbtn-reserve-dialog * {\n    box-sizing: border-box !important;\n}\n\n.appbtn-reserve-dialog {\n    position: fixed;\n    left: 0;\n    bottom: -100%;\n    width: 100%;\n    height: 100%;\n    z-index: 100002;\n}\n\n.appbtn-reserve-dialog__mask {\n    position: absolute;\n    left: 0;\n    top: 0;\n    width: 100%;\n    height: 100%;\n    opacity: 0;\n    background-color: rgba(0, 0, 0, 0.6);\n    transition: opacity .1s linear\n}\n\n.appbtn-reserve-dialog__panel {\n    position: absolute;\n    left: 0;\n    bottom: -100%;\n    width: 100%;\n    padding: 0 24px;\n    min-height: 300px;\n    background: #ffffff;\n    border-top-left-radius: 12PX;\n    border-top-right-radius: 12PX;\n    transition: bottom .3s ease-in-out, height .3s ease-in-out\n}\n.wg_dark_mode .appbtn-reserve-dialog__panel {\n    background: #232323;\n}\n\n.appbtn-reserve-dialog__head {\n    width: 100%;\n    padding: 40px 0 32px 0;\n}\n\n.appbtn-reserve-dialog__content {\n    display: none\n}\n\n.appbtn-reserve-dialog__head-icon {\n    width: 64px;\n    height: 64px;\n    margin: 0 auto;\n    background-size: 64px;\n    background-repeat: no-repeat;\n    background-image: url( https://res.wx.qq.com/wechatgame/product/cdn/moment/done2_50803a7b.svg);\n}\n\n.appbtn-reserve-dialog__head-title {\n    margin-top: 8px;\n    line-height: 24px;\n    font-family: PingFang-SC-Medium;\n    font-size: 17px;\n    color: rgba(35,35,35,0.90);\n    text-align: center;\n}\n\n.appbtn-reserve-dialog__head-title-second {\n    margin-top: 4px;\n}\n.wg_dark_mode .appbtn-reserve-dialog__head-title {\n    color: rgba(255,255,255,0.8);\n}\n\n.appbtn-reserve-dialog-desc {\n    font-family: PingFangSC-Regular;\n    font-size: 13px;\n    color: rgba(0, 0, 0, 0.3);\n    line-height: 20px;\n}\n.wg_dark_mode .appbtn-reserve-dialog-desc {\n    color: rgba(255,255,255,0.3);\n}\n\n.appbtn-reserve-dialog__list {\n    width: 100%;\n    min-height: 72px;\n    position: relative;\n    margin-top: 8px;\n}\n\n.appbtn-reserve-dialog__list:before {\n    content: "";\n    width: 200%;\n    height: 200%;\n    border-top: 1px solid rgba(0, 0, 0, 0.1);\n    border-bottom: 1px solid rgba(0, 0, 0, 0.1);\n    position: absolute;\n    transform: scale(.5);\n    transform-origin: 0 0;\n    transform-origin: 0 0;\n    left: 0;\n    top: 0;\n}\n.wg_dark_mode .appbtn-reserve-dialog__list:before {\n    border-color: rgba(255,255,255,0.05);\n}\n\n.appbtn-reserve-dialog__item {\n    width: 100%;\n    display: flex;\n    position: relative;\n    padding: 16px 0;\n}\n\n.appbtn-reserve-dialog__item:after {\n    content: "";\n    width: 100%;\n    position: absolute;\n    left: 0;\n    bottom: 0;\n    border-bottom: 1px solid rgba(0, 0, 0, 0.1);\n    transform: scaleY(.5)\n}\n.wg_dark_mode .appbtn-reserve-dialog__item:after {\n    border-bottom-color: rgba(255,255,255,0.05);\n}\n\n.appbtn-reserve-dialog__item:last-child::after {\n    display: none;\n}\n\n.appbtn-reserve-dialog__item-icon {\n    width: 48px;\n    height: 48px;\n    min-width: 48px;\n    margin-right: 12px;\n    background-repeat: no-repeat;\n    background-size: 48PX 48PX;\n    background-position: center;\n    border-radius: 8PX;\n}\n\n.appbtn-reserve-dialog__item-center {\n    width: 100%;\n    overflow: hidden;\n    white-space: nowrap;\n    text-overflow: ellipsis;\n}\n\n.appbtn-reserve-dialog__item-title {\n    font-family: PingFangSC-Regular;\n    line-height: 21px;\n    font-size: 15px;\n    margin-top: 2px;\n    color: rgba(0,0,0,0.90);\n    letter-spacing: 0;\n    overflow: hidden;\n    white-space: nowrap;\n    text-overflow: ellipsis;\n    padding-right: 8px;\n}\n.wg_dark_mode .appbtn-reserve-dialog__item-title {\n    color: rgba(255,255,255,0.8);\n}\n\n.appbtn-reserve-dialog__item-desc {\n    margin-top: 4px;\n    font-family: PingFangSC-Regular;\n    font-size: 13px;\n    color: rgba(0,0,0,0.30);\n    line-height: 20px;\n    width: 100%;\n    padding-right: 8px;\n    overflow: hidden;\n    white-space: nowrap;\n    text-overflow: ellipsis;\n}\n.wg_dark_mode .appbtn-reserve-dialog__item-desc {\n    color: rgba(255,255,255,0.5);\n}\n\n.appbtn-reserve-dialog__item-meta {\n    margin-top: 4px;\n    font-family: PingFangSC-Regular;\n    font-size: 13px;\n    color: #FA9D3B;\n    line-height: 20px;\n}\n\n.appbtn-reserve-dialog__item-meta:before {\n    content: "";\n    position: relative;\n    top: 1px;\n    margin-right: 4px;\n    display: inline-block;\n    width: 12px;\n    height: 12px;\n    background-image: url(https://res.wx.qq.com/wechatgame/product/cdn/moment/acad8881.svg);\n    background-size: 12px 12px;\n    background-position: center;\n    background-repeat: no-repeat;\n}\n\n.appbtn-reserve-dialog__item-right {\n    margin-top: 12px;\n    flex-shrink: 0;\n}\n\n.appbtn-reserve-dialog__item-arrow {\n    margin-right: 4px;\n    width: 12px;\n    height: 22px;\n    background-size: 12px 22px;\n    background-repeat: no-repeat;\n    background-image: url(https://res.wx.qq.com/wechatgame/product/cdn/moment/arrow_4daf6a60.svg)\n}\n\n.appbtn-reserve-dialog__item-button {\n    font-family: PingFang-SC-Medium;\n    font-size: 15px;\n    color: #576B95;\n    letter-spacing: 0;\n    line-height: 21px;\n}\n\n.wg_dark_mode .appbtn-reserve-dialog__item-button {\n    color: #7D90A9;\n}\n\n.wg_dark_mode .appbtn-reserve-dialog__item-arrow {\n    background-image: none;\n    background-color: #ffffff;\n    -webkit-mask-size: 12px 22px;\n    -webkit-mask-repeat: no-repeat;\n    -webkit-mask-image: url(https://res.wx.qq.com/wechatgame/product/cdn/moment/arrow_4daf6a60.svg)\n}\n\n.appbtn-reserve-dialog__checkbox {\n    width: 45px;\n    height: 24px;\n    position: relative;\n    z-index: 2;\n    border: 0;\n    background: 0 0;\n    appearance: none;\n    outline: 0;\n}\n\n.appbtn-reserve-dialog__checkbox:before {\n    content: "";\n    position: relative;\n    display: inline-block;\n    width: 43px;\n    height: 22px;\n    border: 1px solid rgba(0, 0, 0, 0.1);\n    background-color: #fdfdfd;\n    border-radius: 20px;\n    cursor: pointer;\n    vertical-align: middle;\n    box-sizing: content-box;\n    box-shadow: rgba(0, 0, 0, 0.1) 0 0 0 0 inset;\n    transition: border 0.2s, box-shadow 0.2s;\n    background-clip: content-box;\n}\n.wg_dark_mode .appbtn-reserve-dialog__checkbox:before {\n    background-color: #191919;\n}\n\n.appbtn-reserve-dialog__checkbox:checked:before {\n    border-color: #07C160;\n    box-shadow: #07C160 0 0 0 15px inset;\n    background-color: #07C160;\n    transition: border 0.2s, box-shadow 0.2s, background-color 0.5s;\n}\n\n.appbtn-reserve-dialog__checkbox:after {\n    content: "";\n    position: absolute;\n    top: 2px;\n    left: 2px;\n    width: 20px;\n    height: 20px;\n    border-radius: 100%;\n    background-color: #fff;\n    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4);\n    transition: left 0.2s;\n}\n\n.appbtn-reserve-dialog__checkbox:checked:after {\n    left: 22px\n}\n\n.appbtn-reserve-dialog__bottom {\n    width: 100%;\n    display: flex;\n    padding: 40px 0px;\n    justify-content: center;\n    margin: 0 auto;\n}\n\n.appbtn-reserve-dialog__button {\n    width: 184px;\n    height: 40px;\n    background: rgba(0, 0, 0, 0.05);\n    border-radius: 4px;\n    font-family: PingFangSC-Medium;\n    font-size: 17PX;\n    color: rgb(6, 174, 86);\n    varter-spacing: 1px;\n    text-align: center;\n    line-height: 40px;\n}\n.wg_dark_mode .appbtn-reserve-dialog__button {\n    background: rgba(255, 255, 255, 0.08);\n    color: rgba(255, 255, 255, 0.8);\n}\n';
            a.isiOS && window.innerHeight > 736 && (t += "\n.appbtn-reserve-dialog__bottom{padding-bottom: 70px}\n"),
            e.innerHTML = t,
            document.getElementsByTagName("head")[0].appendChild(e)
        }
    }
    ,
    l.prototype.insertDom = function() {
        if (!document.getElementById("appbtn-reserve-dialog_dom")) {
            var e = document.createElement("div");
            e.setAttribute("id", "appbtn-reserve-dialog_dom"),
            e.classList.add("appbtn-reserve-dialog"),
            a.isDarkMode && e.classList.add("wg_dark_mode");
            var t = ['<div class="appbtn-reserve-dialog__mask"></div>', '<div class="appbtn-reserve-dialog__panel">', '<div class="appbtn-reserve-dialog__head">', '<div class="appbtn-reserve-dialog__head-icon"></div>', '<div class="appbtn-reserve-dialog__head-title">' + this.type + "成功" + (this.autoDownload ? "" : "，游戏上线后将通知你") + "</div>", '<div class="appbtn-reserve-dialog__head-title appbtn-reserve-dialog__head-title-second">' + (this.autoDownload ? "游戏上线后将在 Wi-Fi 下自动下载" : "") + "</div>", "</div>", '<div class="appbtn-reserve-dialog-desc">你还可以</div>', '<div class="appbtn-reserve-dialog__content">', "</div>", '<div class="appbtn-reserve-dialog__bottom"></div>', "</div>"];
            e.innerHTML = t.join(""),
            document.body.appendChild(e)
        }
    }
    ,
    l.prototype.insertData = function() {
        var e = document.querySelector(".appbtn-reserve-dialog__content");
        e && (e.innerHTML = '<div class="appbtn-reserve-dialog__list"></div>')
    }
    ,
    l.prototype.insertButton = function() {
        document.querySelector(".appbtn-reserve-dialog__bottom").innerHTML = ['<div class="appbtn-reserve-dialog__button appbtn-reserve-dialog__button-left">完成</div>'].join("")
    }
    ,
    l.prototype.bindEvent = function() {
        var e = this;
        this.bottomDom.addEventListener("click", (function(t) {
            e.closeEvent()
        }
        ))
    }
    ,
    l.prototype.bindListEvent = function() {
        for (var e = this, t = document.querySelectorAll(".appbtn-reserve-dialog__item-jump"), n = 0; n < t.length; n++) {
            var i = t[n];
            i && i.addEventListener("click", (function(t) {
                var n = t.target.getAttribute("data-url")
                  , i = t.target.getAttribute("data-type");
                n || (n = t.target.parentNode.getAttribute("data-url"),
                i = t.target.parentNode.getAttribute("data-type"),
                n || (n = t.target.parentNode.parentNode && t.target.parentNode.parentNode.getAttribute("data-url"),
                i = t.target.parentNode.parentNode && t.target.parentNode.parentNode.getAttribute("data-type"))),
                n && (e.report({
                    pid: 2,
                    aid: n.indexOf("weapp") > -1 ? 71 : 40
                }),
                e.jumpCbk({
                    type: i,
                    url: n
                }),
                s.openUrl(n, {
                    ssid: e.uiarea
                }))
            }
            ))
        }
        var r = document.querySelector(".appbtn-reserve-dialog__checkbox");
        r && r.addEventListener("click", (function() {
            e.report({
                pid: 1,
                aid: 2
            })
        }
        ))
    }
    ,
    l.prototype.closeEvent = function() {
        var e = this
          , t = document.querySelector(".appbtn-reserve-dialog__checkbox");
        t && (this.wifiChecked = t.checked);
        try {
            localStorage.setItem("__reserve_dialog_switch__", t.checked ? "0" : "1")
        } catch (e) {}
        e.panelDom.style.bottom = "-100%",
        setTimeout((function() {
            e.maskDom.style.opacity = 0,
            WXGAME && WXGAME.WxBridge.invoke("setGameTab", {
                isShowTab: 1
            })
        }
        ), 200),
        setTimeout((function() {
            e.dialogDom.style.bottom = "-100%",
            e.dialogDom.parentNode.removeChild(e.dialogDom)
        }
        ), 350),
        this.closeCbk(!a.isiOS && this.wifiChecked, this.hasCard),
        e.report({
            pid: 3,
            aid: 61,
            astsuts: this.wifiChecked ? 1 : 0
        })
    }
    ,
    e.exports = l
}
, function(e, t, n) {
    "use strict";
    var i = n(5);
    i.getInstallState = i.getInstallState || function(e, t) {
        i.invoke("getInstallState", e, t)
    }
    ,
    e.exports = i
}
, function(e, t, n) {
    "use strict";
    var i = n(5);
    i.queryDownloadTask = i.queryDownloadTask || function(e, t) {
        window.logInfo && logInfo("queryDownloadTask begin", e),
        i.invoke("queryDownloadTask", e, (function(e) {
            window.logInfo && logInfo("queryDownloadTask ret", e),
            t(e)
        }
        ))
    }
    ,
    e.exports = i
}
, function(e, t, n) {
    "use strict";
    var i = n(5);
    i.launch3rdApp = i.launch3rdApp || function(e, t) {
        i.invoke("launch3rdApp", e, t)
    }
    ,
    e.exports = i
}
, function(e, t, n) {
    "use strict";
    var i = n(5)
      , r = n(1);
    i.launchApplication = i.launchApplication || function(e, t) {
        var n = r.clientVersion(!0);
        r.versionCompare(n, "6.5.5") >= 0 ? ((e = e || {}).showLaunchFailToast = !1,
        i.invoke("launchApplication", e, t)) : i.invoke("launch3rdApp", e, (function(e) {
            e.err_msg = ("" + e.err_msg).replace("launch_3rdApp", "launchApplication"),
            t && t.call(i, e)
        }
        ))
    }
    ,
    e.exports = i
}
, function(e, t, n) {
    "use strict";
    var i = n(5)
      , r = n(1);
    i.downloadAppInternal = i.downloadAppInternal || function(e, t) {
        e = e || {};
        var n = r.clientVersion(!0);
        r.versionCompare(n, "6.5.6") >= 0 ? i.invoke("downloadAppInternal", e, t) : (t && t.call(i, {}),
        window.location.href = e.appUrl)
    }
    ,
    e.exports = i
}
, function(e, t, n) {
    "use strict";
    var i = n(5)
      , r = n(1);
    i.addDownloadTask = i.addDownloadTask || function(e, t) {
        var n = r.clientVersion(!0);
        window.logInfo && logInfo("addDownloadTask begin", e),
        void 0 !== e.task_size ? void 0 !== e.alternative_url ? r.versionCompare(n, "6.5.7") >= 0 ? i.invoke("addDownloadTaskStraight", e, (function(e) {
            window.logInfo && logInfo("addDownloadTask ret", e),
            t(e)
        }
        )) : i.invoke("addDownloadTask", e, (function(e) {
            window.logInfo && logInfo("addDownloadTask ret", e),
            t(e)
        }
        )) : alert("Need alternative_url") : alert("Need task_size")
    }
    ,
    e.exports = i
}
, function(e, t, n) {
    "use strict";
    var i = n(5);
    i.installDownloadTask = i.installDownloadTask || function(e, t) {
        i.invoke("installDownloadTask", e, t)
    }
    ,
    e.exports = i
}
, function(e, t, n) {
    "use strict";
    var i = n(5);
    i.pauseDownloadTask = i.pauseDownloadTask || function(e, t) {
        window.logInfo && logInfo("pauseDownloadTask begin", e),
        i.invoke("pauseDownloadTask", e, (function(e) {
            window.logInfo && logInfo("pauseDownloadTask begin", e),
            t(e)
        }
        ))
    }
    ,
    e.exports = i
}
, function(e, t, n) {
    "use strict";
    var i = n(5);
    i.resumeDownloadTask = i.resumeDownloadTask || function(e, t) {
        window.logInfo && logInfo("resumeDownloadTask begin", e),
        i.invoke("resumeDownloadTask", e, (function(e) {
            window.logInfo && logInfo("queryDownloadTask ret", e),
            t(e)
        }
        ))
    }
    ,
    e.exports = i
}
, function(e, t, n) {
    "use strict";
    var i, r, o = n(1);
    if (o.isCSR)
        e.exports = {
            show: function() {},
            bindEvent: function() {}
        };
    else {
        var a = n(46)
          , s = n(6).format;
        n(96),
        window,
        i = document,
        r = {
            show: function(e) {
                if (!e || !e.actionList)
                    throw "params.actionList is empty";
                var t = !e.noFilterXSS;
                e.actionCfgList = e.actionCfgList || [];
                for (var n, r = "", a = 0, c = e.actionList.length; a < c; a++) {
                    var l = e.actionCfgList[a] || {}
                      , u = {};
                    l.isTitle && (u["weui-actionsheet__title"] = !0),
                    l.isDanger && (u["weui-actionsheet__danger"] = !0),
                    r += s('<div class="weui-actionsheet__cell js_action_sheet_item {classStyle}" data-index="{index}">{actionText}</div>', {
                        classStyle: Object.keys(u).join(" "),
                        index: a,
                        actionText: e.actionList[a]
                    }, t)
                }
                n = function(e) {
                    var t = "as_" + parseInt(1e6 * Math.random())
                      , n = document.createElement("div");
                    return n.id = t,
                    n.innerHTML = e,
                    n.addEventListener("touchmove", (function(e) {
                        e.stopPropagation(),
                        e.preventDefault()
                    }
                    )),
                    i.body.appendChild(n),
                    setTimeout((function() {
                        var e = document.getElementsByClassName("weui-actionsheet");
                        if (e.length > 0 && (e = e[e.length - 1]).classList.add("weui-actionsheet_toggle"),
                        o.isIosLiuhai) {
                            var t = document.getElementById("weui-actionsheet__action_btn");
                            t && t.classList.add("iosx")
                        }
                    }
                    ), 50),
                    n
                }(s('\n            <div class="weui-mask js_action_sheet_cancel" style="opacity: 1;"></div>\n            <div class="weui-actionsheet ">\n                <div class="weui-actionsheet__menu">\n                    {list_html}\n                </div>\n                <div class="weui-actionsheet__action js_action_sheet_cancel" id="weui-actionsheet__action_btn">\n                    <div class="weui-actionsheet__cell">取消</div>\n                </div>\n            </div>\n        ', {
                    list_html: r
                }, !1)),
                this.bindEvent(n, e.clickCbk, e.cancelCbk),
                WXGAME && WXGAME.WxBridge.invoke("setGameTab", {
                    isShowTab: 0
                })
            },
            bindEvent: function(e, t, n) {
                if (e) {
                    if (t)
                        for (var i = 0, r = (o = e.getElementsByClassName("js_action_sheet_item")).length; i < r; i++)
                            o[i].classList.contains("weui-actionsheet__title") || a.click(o[i], (function(n, i) {
                                for (var r = 0; i && -1 === i.className.indexOf("js_action_sheet_item") && r < 5; )
                                    i = i.parentNode,
                                    r++;
                                var o = parseInt(i.getAttribute("data-index"));
                                e.parentNode.removeChild(e),
                                t(o),
                                WXGAME && WXGAME.WxBridge.invoke("setGameTab", {
                                    isShowTab: 1
                                })
                            }
                            ));
                    var o;
                    for (i = 0,
                    r = (o = e.getElementsByClassName("js_action_sheet_cancel")).length; i < r; i++)
                        a.click(o[i], (function(t, i) {
                            n(),
                            e.parentNode.removeChild(e),
                            WXGAME && WXGAME.WxBridge.invoke("setGameTab", {
                                isShowTab: 1
                            })
                        }
                        ))
                }
            }
        },
        e.exports = r
    }
}
, function(e, t, n) {
    var i = n(97);
    "string" == typeof i && (i = [[e.i, i, ""]]),
    i.locals && (e.exports = i.locals);
    (0,
    n(37).default)("5abcee70", i, !0, {})
}
, function(e, t, n) {
    (e.exports = n(36)(!1)).push([e.i, '.weui-mask {\n  position: fixed;\n  z-index: 100001;\n  top: 0;\n  right: 0;\n  left: 0;\n  bottom: 0;\n  background: rgba(0, 0, 0, 0.6);\n}\n.weui-actionsheet {\n  position: fixed;\n  left: 0;\n  bottom: 0;\n  -webkit-transform: translate(0, 100%);\n  transform: translate(0, 100%);\n  -webkit-backface-visibility: hidden;\n  backface-visibility: hidden;\n  z-index: 100002;\n  width: 100%;\n  background-color: #ededed;\n  -webkit-transition: -webkit-transform 0.3s;\n  transition: -webkit-transform 0.3s;\n  transition: transform 0.3s;\n  transition: transform 0.3s, -webkit-transform 0.3s;\n  border-top-left-radius: 10px;\n  border-top-right-radius: 10px;\n}\n.wg_dark_mode .weui-actionsheet {\n  background-color: #111111;\n}\n.weui-actionsheet__menu {\n  background-color: #ffffff;\n  border-top-left-radius: 10px;\n  border-top-right-radius: 10px;\n}\n.wg_dark_mode .weui-actionsheet__menu {\n  background-color: #191919;\n}\n.weui-actionsheet__action {\n  margin-top: 6px;\n  background-color: #fcfcfd;\n  background-color: #ffffff;\n}\n.wg_dark_mode .weui-actionsheet__action {\n  background-color: #191919;\n}\n.weui-actionsheet__cell {\n  position: relative;\n  padding: 10px 0;\n  text-align: center;\n  font-size: 17PX;\n  line-height: 30px;\n  color: rgba(0, 0, 0, 0.9);\n  -moz-user-select: none;\n   -ms-user-select: none;\n       user-select: none;\n  -webkit-user-select: none;\n}\n.wg_dark_mode .weui-actionsheet__cell {\n  color: rgba(255, 255, 255, 0.8);\n}\n.weui-actionsheet__cell:before {\n  content: " ";\n  position: absolute;\n  left: 0;\n  top: 0;\n  right: 0;\n  height: 1px;\n  border-top: 1px solid;\n  border-top-color: rgba(0, 0, 0, 0.1);\n  color: #e5e5e5;\n  -webkit-transform-origin: 0 0;\n  transform-origin: 0 0;\n  -webkit-transform: scaleY(0.5);\n  transform: scaleY(0.5);\n}\n.wg_dark_mode .weui-actionsheet__cell:before {\n  border-top-color: rgba(255, 255, 255, 0.05);\n}\n.weui-actionsheet__cell:active {\n  background-color: rgba(0, 0, 0, 0.1);\n}\n.wg_dark_mode .weui-actionsheet__cell:active {\n  background-color: rgba(255, 255, 255, 0.1);\n}\n.weui-actionsheet__cell:first-child {\n  border-top-left-radius: 10px;\n  border-top-right-radius: 10px;\n}\n.weui-actionsheet__cell:first-child:before {\n  display: none;\n}\n.weui-actionsheet__cell.weui-actionsheet__title {\n  color: rgba(0, 0, 0, 0.5);\n  font-size: 14px;\n}\n.wg_dark_mode .weui-actionsheet__cell.weui-actionsheet__title {\n  color: rgba(255, 255, 255, 0.5);\n}\n.weui-actionsheet__cell.weui-actionsheet__title:active {\n  background-color: rgba(255, 255, 255, 0);\n}\n.weui-actionsheet_toggle {\n  -webkit-transform: translate(0, 0);\n  transform: translate(0, 0);\n}\n.iosx {\n  padding-bottom: 34px;\n}\n.weui-actionsheet__danger {\n  color: #fa5151;\n}\n.wg_dark_mode .weui-actionsheet__danger {\n  color: #fa5151;\n}\n', ""])
}
, function(e, t, n) {
    "use strict";
    var i = n(2)(n(4))
      , r = n(9)
      , o = n(8)
      , a = window.WXGAME || {}
      , s = (o = a.baseQualityReport || o).StartLogic(o.LOGIC_CONST.TypeTextEnum.BADJS, "badjs", {}, null)
      , c = function(e) {
        if (e.BJ_REPORT)
            return e.BJ_REPORT;
        var t = []
          , n = {
            id: 0,
            uin: 0,
            url: "",
            combo: 1,
            ext: {},
            level: 4,
            ignore: [],
            random: 1,
            delay: 1e3,
            submit: null
        }
          , o = function(e, t) {
            return Object.prototype.toString.call(e) === "[object " + (t || "Object") + "]"
        }
          , c = function(e) {
            return "object" === (0,
            i.default)(e) && !!e
        }
          , l = e.onerror;
        e.onerror = function(t, n, i, a, s) {
            r.logError("Badjs", t, n, a, s);
            var c = t;
            s && s.stack && (c = u(s)),
            o(c, "Event") && (c += c.type ? "--" + c.type + "--" + (c.target ? c.target.tagName + "::" + c.target.src : "") : ""),
            v.push({
                msg: c,
                target: n,
                rowNum: i,
                colNum: a
            }),
            h(),
            l && l.apply(e, arguments)
        }
        ,
        window.addEventListener("unhandledrejection", (function(e) {
            a && a.Badjs && a.Badjs.push(e.reason)
        }
        ));
        var u = function(e) {
            var t = e.stack.replace(/\n/gi, "").split(/\bat\b/).slice(0, 5).join("@").replace(/\?[^:]+/gi, "")
              , n = e.toString();
            return t.indexOf(n) < 0 && (t = n + "@" + t),
            t
        }
          , d = function(e, t) {
            var i = []
              , r = []
              , o = [];
            if (c(e))
                for (var a in e.level = e.level || n.level,
                e) {
                    var s = e[a] || "";
                    if (s) {
                        if (c(s))
                            try {
                                s = JSON.stringify(s)
                            } catch (e) {
                                s = "[BJ_REPORT detect value stringify error] " + e.toString()
                            }
                        o.push(a + ":" + s),
                        i.push(a + "=" + encodeURIComponent(s)),
                        r.push(a + "[" + t + "]=" + encodeURIComponent(s))
                    }
                }
            return [r.join("&"), o.join(","), i.join("&")]
        }
          , p = []
          , f = function(e) {
            if (n.submit)
                n.submit(e);
            else {
                var t = new Image;
                p.push(t),
                t.src = e
            }
        }
          , g = []
          , m = 0
          , h = function(e) {
            if (n.report) {
                for (; t.length; ) {
                    var i = !1
                      , r = t.shift()
                      , a = d(r, g.length);
                    if (o(n.ignore, "Array"))
                        for (var c = 0, l = n.ignore.length; c < l; c++) {
                            var u = n.ignore[c];
                            if (o(u, "RegExp") && u.test(a[1]) || o(u, "Function") && u(r, a[1])) {
                                i = !0;
                                break
                            }
                        }
                    i || (s.EndLogic({
                        badjs_str: r.msg
                    }),
                    n.combo ? g.push(a[0]) : f(n.report + a[2] + "&_t=" + +new Date),
                    n.onReport && n.onReport(n.id, r))
                }
                var p = g.length;
                if (p) {
                    var h = function() {
                        clearTimeout(m),
                        f(n.report + g.join("&") + "&count=" + p + "&_t=" + +new Date),
                        m = 0,
                        g = []
                    };
                    e ? h() : m || (m = setTimeout(h, n.delay))
                }
            }
        }
          , v = {
            push: function(e) {
                if (Math.random() >= n.random)
                    return v;
                if (!e)
                    return v;
                var i = "string" == typeof e ? {
                    msg: e
                } : function(e) {
                    var t = e;
                    try {
                        if (e.stack) {
                            var n = e.stack.match("http://[^\n]+")
                              , i = (n = n ? n[0] : "").match(":([0-9]+):([0-9]+)");
                            i || (i = [0, 0, 0]),
                            t = {
                                msg: u(e),
                                rowNum: i[1],
                                colNum: i[2],
                                target: n.replace(i[0], "")
                            }
                        } else
                            e.message && (t = {
                                msg: e.message
                            })
                    } catch (e) {}
                    return t && "string" == typeof t.msg || (t = {
                        msg: JSON.stringify(t)
                    }),
                    t
                }(e);
                return "{}" === i.msg || ("string" == typeof i.msg && (i.msg = i.msg.slice(0, 500)),
                t.push(i),
                h()),
                v
            },
            report: function(e) {
                return e && v.push(e),
                h(!0),
                v
            },
            info: function(e) {
                return e ? (c(e) ? e.level = 2 : e = {
                    msg: e,
                    level: 2
                },
                v.push(e),
                v) : v
            },
            debug: function(e) {
                return e ? (c(e) ? e.level = 1 : e = {
                    msg: e,
                    level: 1
                },
                v.push(e),
                v) : v
            },
            init: function(e) {
                if (c(e))
                    for (var t in e)
                        n[t] = e[t];
                var i = parseInt(n.id, 10);
                return i && (n.report = (n.url || "http://badjs2.qq.com/badjs") + "?id=" + i + "&uin=" + parseInt(n.uin || (document.cookie.match(/\buin=\D+(\d+)/) || [])[1], 10) + "&from=" + encodeURIComponent(location.href) + "&ext=" + JSON.stringify(n.ext) + "&"),
                v
            },
            __onerror__: e.onerror
        };
        return e.BJ_REPORT = v,
        v
    }(window);
    e.exports && (t = e.exports = c),
    t.BJ_REPORT = c;
    var l = n(3)
      , u = n(20).base64decode
      , d = l.getQueryStr;
    c.init({
        url: "https://badjs.weixinbridge.com/badjs",
        id: 101,
        uin: u(decodeURIComponent(d("uin"))),
        combo: 1,
        delay: 2e3,
        ignore: [/Script error/i, /trigger/i, /WeixinJSBridge/i, /_handleMessageFromWeixin/i, /setfont/i, /WXJS/i, /_WXJS/i, /SecurityError/i, /The play\(\) request was interrupted by a call to pause\(\)/i, /The operation was aborted/i, /The request is not allowed by the user agent or the platform in the current context/i, /play\(\) can only be initiated by a user gesture/i, /The element has no supported sources/i, /The operation is not supported\.@play@/i],
        level: 4,
        random: 1
    })
}
, function(e, t, n) {
    "use strict";
    var i = n(2)(n(4))
      , r = n(11)
      , o = n(3)
      , a = n(1)
      , s = n(7)
      , c = n(6)
      , l = o.getQueryStr
      , u = n(34)
      , d = n(33)
      , p = n(45)
      , f = n(0).window;
    !function(t, n, r) {
        function g(e, t) {
            e += "&ActID=" + (t.iActID || h.actid || 0),
            e += "&LogType=" + (t.iLogType || h.iLogType || l("abt") || 0),
            e += "&SceneID=" + (t.iSceneId || 0),
            e += "&GameID=" + (t.sGameId || ""),
            e += "&SourceID=" + (t.iSourceSceneId || l("ssid", null, f) || 0),
            e += "&UIArea=" + (t.iUIArea || 0),
            e += "&PositionID=" + (t.iPositionId || 0),
            e += "&ActionID=" + (t.iActionId || 0),
            e += "&ActionStatus=" + (t.sActionStatus || ""),
            e += "&GiftID=" + (t.iGiftBagId || 0),
            e += "&GiftType=" + (t.iGiftBagType || 0),
            e += "&ConnectType=" + (t.sConnectType || h.networktype || ""),
            e += "&ISP=" + (t.sServiceProvider || ""),
            e += "&DeviceBrand=" + (t.sDeviceBrand || ""),
            e += "&DeviceModel=" + (t.sDeviceModel || ""),
            e += "&OpType=" + (t.iOpType || 0);
            var n = p(t);
            return e += "&ExpID=" + (t.iExpID || n.exp_id || 0),
            e += "&ReasonID=" + (t.iReasonID || n.reason_id || 0),
            e += "&allpath=" + (l("rpt_allpath") || ""),
            e += "&getType=" + (a.isWepkg() ? 1 : 2),
            e += "&URL=" + encodeURIComponent(location.href.split("#")[0].replace(/&(uin|pass_ticket|key)=[^&]+/g, "").replace(/\?(uin|pass_ticket|key)=[^&]+/g, "?")),
            e += "&ExternInfo=" + c.exencodeURIComponent(t.sExternInfo || h.sExternInfo || ""),
            e += "&errType=" + d(t),
            t.iContentType && (e += "&ContentType=" + (t.iContentType || 0)),
            t.iTime && (e += "&Time=" + (t.iTime || 0)),
            t.sVideoID && (e += "&VideoID=" + (t.sVideoID || "")),
            window.__KULP_BUILD_VERSION__ && (e += "&BuildVersion=" + (window.__KULP_BUILD_VERSION__ || "")),
            e += "&t=" + (new Date).getTime()
        }
        function m(e) {
            var t = l("rpt_ssid_str") || ""
              , n = e.sExternInfo;
            try {
                if (!t)
                    return e;
                if (n)
                    if ("string" == typeof n) {
                        var r = JSON.parse(n);
                        r = o.extend({
                            rpt_ssid_str: t
                        }, r),
                        n = JSON.stringify(r)
                    } else
                        "object" === (0,
                        i.default)(n) && (n = JSON.stringify(o.extend({
                            rpt_ssid_str: t
                        }, n)));
                else
                    n = JSON.stringify({
                        rpt_ssid_str: t
                    });
                return e.sExternInfo = n,
                e
            } catch (t) {
                return e
            }
        }
        var h = t.reportObj;
        t.report = function(e) {
            e = e || {};
            var n, i = a.isWechat || a.isPcWechat, r = i ? "//game.weixin.qq.com/cgi-bin/comm/cltstat?" : "//game.weixin.qq.com/cgi-bin/groupwap/reportstat?";
            i || l("uin", null, f) ? s.getUinKey((function(n) {
                r += "uin=" + (decodeURIComponent(n.uin) || e.uin),
                r += "&key=" + (n.key || e.key),
                r += "&pass_ticket=" + (e.pass_ticket || n.pass_ticket),
                e = m(e),
                r = g(r, e),
                r = c.filterUrlByKey(r, ["uin", "key"]),
                t.imgReport(r)
            }
            )) : (r += ((n = u.getMsdkLogin()).auth_type = 2,
            c.mapToStr(n)),
            e = m(e),
            r = g(r, e),
            r = c.filterUrlByKey(r, ["uin", "key"]),
            t.imgReport(r))
        }
        ,
        e.exports = t
    }(o.extend({}, r), window, document)
}
, function(e, t, n) {
    "use strict";
    var i, r, o, a = n(11), s = n(3), c = n(12), l = s.getQueryStr, u = c.getKeyValue, d = n(7), p = n(0).window, f = n(34);
    i = s.extend({}, a),
    r = window,
    o = i.reportObj,
    i.report = function(e) {
        var t;
        t = function(t) {
            !function(e) {
                var t = location.protocol + "//game.weixin.qq.com/cgi-bin/comm/gamewebstat?";
                e = e || {};
                var n = parseInt(e.abt || l("abt", null, p)) || -1;
                t += "noticeid=" + (e.nNoticeID || o.noticeid || 0),
                t += "&appid=" + (e.sAppID || r.sAppID || r.sAppId || ""),
                t += "&usropstate=" + (e.nUrOpState || 0);
                var a = e.iActID || o.actid || 0;
                t += "&actid=" + a,
                t += "&networktype=" + (e.nNetworkType || o.networktype || ""),
                e.uin && null != e.uin && (t += "&uin=" + e.uin,
                t += "&key=" + e.key,
                t += "&pass_ticket=" + e.pass_ticket),
                e.sig && null != e.sig && (t += "&sig=" + e.sig,
                t += "&timestamp=" + e.timestamp,
                t += "&algorithm=" + e.algorithm,
                t += "&version=" + e.version,
                t += "&encode=" + e.encode,
                t += "&msdkEncodeParam=" + e.msdkEncodeParam),
                e.sAccessToken && null != e.sAccessToken && (t += "&access_token=" + e.sAccessToken,
                t += "&auth_type=2"),
                t += "&sourcescene=" + (e.nSourceScene || o.sourcescene || l("ssid", null, p) || 0),
                t += "&destinationscene=" + (e.nDestinationScene || 0),
                t += "&appstate=" + (e.nAppState || 0),
                t += "&appversion=" + (e.nAppVersion || ""),
                t += "&assiststate=" + (e.nAssistState || ""),
                t += "&assistversion=" + (e.nAssistVersion || 0),
                t += "&openid=" + (e.sOpenID || l("openid", null, p) || u("openid") || ""),
                t += "&optype=" + (e.iOptype || 0),
                t += "&giftid=" + (e.iGiftID || 0),
                t += "&pid=" + (e.iPid || 0),
                t += "&pos=" + (e.iPos || 0);
                var s = l("rpt_allpath");
                ("" + s).length > 0 && (s += "_act" + a),
                t += "&allpath=" + (e.sAllPath || s || ""),
                e.ExternInfo = e.ExternInfo || "{}";
                var c = decodeURIComponent(e.ExternInfo);
                try {
                    c = JSON.parse(c),
                    isNaN(n) || (c.abt = n),
                    e.ExternInfo = encodeURIComponent(JSON.stringify(c))
                } catch (e) {
                    console.error("10861 extinfo json parse error!")
                }
                t += "&externinfo=" + e.ExternInfo,
                t += "&t=" + (new Date).getTime(),
                i.imgReport(t)
            }(s.extend(e, t))
        }
        ,
        -1 != location.search.indexOf("sig") ? t && t(f.getMsdkLogin()) : d.getUinKey((function(e) {
            t && t(e)
        }
        ))
    }
    ,
    e.exports = i
}
, function(e, t, n) {
    "use strict";
    var i = n(2)(n(4))
      , r = n(11)
      , o = n(3)
      , a = n(1)
      , s = n(7)
      , c = n(6)
      , l = o.getQueryStr
      , u = n(34)
      , d = n(33)
      , p = n(0).window;
    !function(t, n, r) {
        function f(e, t) {
            return e += "&SceneID=" + (t.iSceneId || 0),
            e += "&GameID=" + (t.sGameId || ""),
            e += "&UIArea=" + (t.iUIArea || 0),
            e += "&PositionID=" + (t.iPositionId || 0),
            e += "&ActionID=" + (t.iActionId || 0),
            e += "&SourceID=" + (t.iSourceSceneId || l("ssid", null, p) || 0),
            e += "&SsID=" + (t.iSsid || l("issid", null, p) || 0),
            e += "&GeneralID=" + (t.iGeneralID || l("gid", null, p) || 0),
            e += "&GenType=" + (t.iGenType || 0),
            e += "&ConnectType=" + (t.sConnectType || m.networktype || ""),
            e += "&ISP=" + (t.sServiceProvider || ""),
            e += "&DeviceBrand=" + (t.sDeviceBrand || ""),
            e += "&DeviceModel=" + (t.sDeviceModel || ""),
            e += "&ActID=" + (t.iActID || m.actid || 0),
            e += "&LogType=" + (t.iLogType || m.iLogType || l("abt") || 0),
            e += "&ExternInfo=" + c.exencodeURIComponent(t.sExternInfo || m.sExternInfo || ""),
            e += "&ExtVersion=" + (t.iExtVersion || ""),
            e += "&DevInfo=" + (t.sDevInfo || m.sDevInfo || ""),
            e += "&GetType=" + (a.isWepkg() ? 1 : 2),
            e += "&URL=" + encodeURIComponent(location.href.split("#")[0].replace(/&(uin|pass_ticket|key)=[^&]+/g, "").replace(/\?(uin|pass_ticket|key)=[^&]+/g, "?")),
            e += "&ErrType=" + d(t),
            e += "&t=" + (new Date).getTime()
        }
        function g(e) {
            var t = l("rpt_ssid_str") || ""
              , n = e.sExternInfo;
            try {
                if (!t)
                    return e;
                if (n)
                    if ("string" == typeof n) {
                        var r = JSON.parse(n);
                        r = o.extend({
                            rpt_ssid_str: t
                        }, r),
                        n = JSON.stringify(r)
                    } else
                        "object" === (0,
                        i.default)(n) && (n = JSON.stringify(o.extend({
                            rpt_ssid_str: t
                        }, n)));
                else
                    n = JSON.stringify({
                        rpt_ssid_str: t
                    });
                return e.sExternInfo = n,
                e
            } catch (t) {
                return e
            }
        }
        var m = t.reportObj;
        t.report = function(e) {
            e = e || {};
            var n, i = a.isWechat || a.isPcWechat, r = "//game.weixin.qq.com/cgi-bin/comm/socialstat?";
            i || l("uin", null, p) ? s.getUinKey((function(n) {
                r += "uin=" + (decodeURIComponent(n.uin) || e.uin),
                r += "&key=" + (n.key || e.key),
                r += "&pass_ticket=" + (e.pass_ticket || n.pass_ticket),
                e = g(e),
                r = f(r, e),
                r = c.filterUrlByKey(r, ["uin", "key"]),
                t.imgReport(r)
            }
            )) : (r += ((n = u.getMsdkLogin()).auth_type = 2,
            c.mapToStr(n)),
            e = g(e),
            r = f(r, e),
            r = c.filterUrlByKey(r, ["uin", "key"]),
            t.imgReport(r))
        }
        ,
        e.exports = t
    }(o.extend({}, r), window, document)
}
, function(e, t, n) {
    "use strict";
    var i = n(2)(n(4))
      , r = n(0)
      , o = n(11).reportObj
      , a = n(12)
      , s = (n(8),
    {
        ajax: function(e, t, n, r) {
            var o = new XMLHttpRequest
              , a = t;
            a.method = a.method.toUpperCase(),
            a.url = e,
            "GET" === a.method && ("object" === (0,
            i.default)(a.data) ? a.url = -1 === a.url.indexOf("?") ? a.url + "?" + s.mapToStr(a.data) : a.url + "&" + s.mapToStr(a.data) : "string" == typeof a.data && (a.url = -1 === a.url.indexOf("?") ? a.url + "?" + a.data : a.url + "&" + a.data)),
            -1 !== a.url.indexOf("?") ? a.url += "&QB&" : a.url += "?&QB&",
            o.open(a.method, a.url),
            "POST" === a.method && o.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"),
            o.onreadystatechange = function() {
                4 === o.readyState && (200 === o.status ? n && n(JSON.parse(o.responseText) || {}) : r && r(o.status))
            }
            ,
            "GET" === a.method ? o.send(null) : "object" === (0,
            i.default)(a.data) ? o.send(s.mapToStr(a.data)) : o.send(a.data)
        },
        mapToStr: function(e, t) {
            var n = [];
            t = t || "&";
            for (var i in e)
                n.push(i + "=" + e[i]);
            return n.join(t)
        },
        getQueryStr: function(e, t) {
            var n = t || location.search
              , i = (n = ("" + n).replace(/#(.*)$/g, "").replace(/&amp;/g, "&")).match(new RegExp("[?&]" + e + "=([^&]+)","i"));
            return null === i || i.length <= 1 ? "" : i[1]
        },
        getClientVersion: function(e) {
            var t = (r.window.navigator.userAgent || r.window.navigator.wxuserAgent || e).match(/MicroMessenger\/([\d\.]+)/i)
              , n = "";
            return t && t.length > 1 && (n = t[1]),
            (n = n.split(".")).length = 3,
            n.join(".") + ""
        },
        isType: function(e, t) {
            return Object.prototype.toString.call(t).match(/\s(\w+)/)[1].toLowerCase() === e
        }
    })
      , c = null;
    function l() {
        if (c)
            return c;
        c = this,
        this.init()
    }
    l.prototype = {
        constructor: l,
        init: function() {
            this.config = {
                reportsize: 5,
                reportcgi: "/cgi-bin/comm/pagestat?op=batch",
                persistkey: "mmgamecenter_universe_quality_key",
                delay: 1e3
            },
            this.hasBaseSetted = !1,
            this.isFirstReport = !0,
            this.base = this.collectBase(),
            this.other = {
                type: 999999,
                status: 999999,
                cost_time: {},
                url: "",
                ext: "",
                time: 0
            },
            this.dataPool = []
        },
        collectBase: function() {
            var e = o.device
              , t = o.networktype
              , n = s.getClientVersion();
            return {
                bid: 1,
                scene_id: 0,
                device: "android" === e ? 2 : "iphone" === e ? 1 : 0,
                network_type: null == t ? 1 : parseInt(t),
                client_version: n.match(/(\d+\.){2}\d+/g) ? n : "",
                ssid: Number(s.getQueryStr("ssid")) || 0
            }
        },
        abstractOneReport: function(e) {
            var t = this.base
              , n = this.other
              , r = {};
            for (var o in t)
                ({}).hasOwnProperty.call(t, o) && (r[o] = void 0 !== e[o] ? e[o] : t[o]);
            for (var o in n)
                if ({}.hasOwnProperty.call(n, o))
                    if (r[o] = void 0 !== e[o] ? e[o] : n[o],
                    "time" === o)
                        r[o] = Math.floor((new Date).getTime() / 1e3);
                    else if ("url" === o && 0 === e.type)
                        r[o] = e[o].match(/([^?]+)\??/)[1],
                        r[o] = -1 === r[o].indexOf("http") ? location.origin + r[o] : r[o];
                    else if ("cost_time" === o) {
                        for (var a in e[o]) {
                            var s = e[o][a];
                            (isNaN(s) || void 0 === s) && (e[o][a] = 999999)
                        }
                        r[o] = void 0 === e[o] ? n[o] : e[o]
                    } else
                        "ext" === o && "object" === (0,
                        i.default)(e[o]) && (r[o] = JSON.stringify(e[o]));
            return r
        },
        reportArr: function(e, t) {},
        reportDataInLocal: function(e) {
            var t = this.config.persistkey;
            if (!this.isFirstReport)
                return e && e.call(this, []);
            try {
                this.isFirstReport = !1;
                var n = JSON.parse(a.getKeyValue(t));
                if (!n.length)
                    return e && e.call(this, n);
                this.reportArr(n, (function(i) {
                    0 === i && (n = [],
                    a.setKeyValue(t, "[]")),
                    e && e.call(this, n)
                }
                ))
            } catch (n) {
                a.setKeyValue(t, "[]"),
                e && e.call(this, [])
            }
        },
        doReport: function() {
            var e = this
              , t = this.config.persistkey
              , n = this.dataPool
              , i = n.splice(0, this.config.reportsize);
            if (i.length) {
                try {
                    a.setKeyValue(t, JSON.stringify(n))
                } catch (e) {}
                this.reportArr(i, (function(n) {
                    0 !== n && (e.dataPool = i.concat(e.dataPool)),
                    isNaN(n) || 0 === n || (e.dataPool = e.dataPool.slice(1)),
                    a.setKeyValue(t, JSON.stringify(e.dataPool))
                }
                ))
            }
        },
        set_config: function(e) {
            if (!s.isType("object", e))
                throw "IllegalArgumentException: params must be type of Object";
            var t = this.config;
            for (var n in e)
                ({}).hasOwnProperty.call(e, n) && {}.hasOwnProperty.call(t, n) && (t[n] = e[n]);
            this.report_list()
        },
        set_base: function(e) {
            if (!s.isType("object", e))
                throw "IllegalArgumentException: params must be type of Object";
            var t = this.base;
            for (var n in e)
                if ({}.hasOwnProperty.call(e, n) && {}.hasOwnProperty.call(t, n)) {
                    var r = (0,
                    i.default)(t[n]);
                    if (r !== (0,
                    i.default)(e[n])) {
                        if ("string" === r) {
                            var o = String(e[n]);
                            "[object Object]" !== o && "null" !== o && (t[n] = o)
                        } else if ("number" === r) {
                            var a = parseInt(e[n]);
                            t[n] = isNaN(a) ? t[n] : a
                        }
                    } else
                        t[n] = e[n]
                }
            this.hasBaseSetted = !0
        },
        report_list: function() {
            var e = this;
            function t() {
                window._reportlist_ && window._reportlist_.register && window._reportlist_.register((function(t) {
                    for (var n = 0, i = t.length; n < i; n++)
                        t[n] = e.report(t[n])
                }
                )),
                window._reportlist_ && window._reportlist_.register || setTimeout(t, 500)
            }
            "complete" === document.readyState ? t() : window.addEventListener("load", t, !1)
        },
        report: function(e) {
            if (!this.hasBaseSetted)
                throw "IllegalStateException: please invoke API `set_base` before.";
            var t = this;
            e = this.abstractOneReport(e),
            this.reportDataInLocal((function(n) {
                t.dataPool = n.concat(t.dataPool).concat(e),
                a.setKeyValue(t.config.persistkey, JSON.stringify(t.dataPool)),
                t.dataPool.length >= t.config.reportsize && t.doReport()
            }
            )),
            this.timer && clearTimeout(this.timer),
            this.timer = setTimeout(this.doReport.bind(this), this.config.delay)
        },
        call: function(e, t) {
            if (null == t)
                throw "IllegalArgumentException: name is null or undefined.";
            if (!s.isType("string", t))
                throw "IllegalArgumentException: name must be type of String";
            this.report({
                type: 1,
                status: e,
                ext: t
            })
        },
        afterCall: function(e, t, n) {
            if (null == t)
                throw "IllegalArgumentException: name is null or undefined.";
            if (!s.isType("string", t))
                throw "IllegalArgumentException: name must be type of String";
            if (n && !s.isType("object", n) && !s.isType("string", n))
                throw "IllegalArgumentException: res must be type of String or Object";
            n = n || "",
            this.report({
                type: 1,
                status: e,
                ext: t + "_res:" + (s.isType("object", n) ? JSON.stringify(n) : n)
            })
        },
        render: function(e) {
            this.call(1e3, "render_" + (s.isType("object", e) ? JSON.stringify(e) : e))
        },
        readCache: function(e) {
            this.call(1001, "render_" + (s.isType("object", e) ? JSON.stringify(e) : e))
        },
        click: function(e) {
            this.call(1002, "click_" + e)
        },
        afterClick: function(e, t) {
            this.afterCall(1003, "click_" + e, t)
        },
        invokeJsapi: function(e) {
            this.call(1004, "invoke_" + e)
        },
        afterInvokeJsapi: function(e, t) {
            this.afterCall(1005, "invoke_" + e, t)
        },
        callFnBegin: function(e) {
            this.call(1006, "fncall_" + e)
        },
        callFnEnd: function(e, t) {
            this.afterCall(1007, "fncall_" + e, t)
        }
    },
    e.exports = new l
}
, function(e, t, n) {
    "use strict";
    var i = n(0)
      , r = n(10)
      , o = n(3)
      , a = n(6);
    function s(e, t) {
        return e.indexOf("ssid=") > -1 ? e : e.indexOf("?") > -1 ? e.replace("?", "?ssid=" + t + "&") : e.indexOf("#wechat_redirect") > -1 ? e.replace("#wechat_redirect", "?ssid=" + t + "#wechat_redirect") : e + "?ssid=" + t
    }
    function c(e, t) {
        e = e || "";
        var n = a.getQuery(e)
          , i = a.getHash(e);
        t && (n.share_openid = t);
        var r = [];
        r.push(a.getDomainPath(e));
        var o = a.mapToStr(n) || "";
        return o.length <= 0 || (r.push("?"),
        r.push(o),
        i && r.push("#" + i)),
        r.join("")
    }
    function l(e) {
        r("/cgi-bin/gamecenterwap/getgamecenterdata", JSON.stringify({
            method: "POST",
            user_info_option: {
                need: !0
            }
        }), (function(t) {
            var n = o.getValue(t, "data.user_info.openid") + "";
            n && n.length > 0 ? e && e(!0, n) : e && e(!1, "fail_get_openid")
        }
        ), (function(t) {
            i.window.logError && i.window.logError("getShareOpenID", "get_shareopenid_fail"),
            e && e(!1, "cgierror")
        }
        ))
    }
    e.exports = function e(t, n, r) {
        t.appid = t.appid || "wx62d9035fd4fd2059";
        var o = t.link || "";
        if (i.window.WeixinJSBridge) {
            t.link = s(o, 1),
            i.window.WeixinJSBridge && i.window.WeixinJSBridge.on("menu:share:appmessage", (function(e) {
                l((function(e, r) {
                    var o = t.link;
                    !0 === e ? o = c(t.link, r) : console.log("getShareOpenID fail", r),
                    t.link = o,
                    i.window.WeixinJSBridge && i.window.WeixinJSBridge.invoke("sendAppMessage", t, (function(e) {
                        !e || -1 == e.err_msg.indexOf(":confirm") && -1 == e.err_msg.indexOf(":ok") ? e && -1 != e.err_msg.indexOf(":cancel") ? n && n(-1) : n && n(-2, e) : n && n(0, 0)
                    }
                    ))
                }
                ))
            }
            ));
            var a = JSON.parse(JSON.stringify(t));
            r && (a.title = r),
            a.link = s(o, 4),
            i.window.WeixinJSBridge && i.window.WeixinJSBridge.on("menu:share:timeline", (function(e) {
                l((function(e, t) {
                    var r = a.link;
                    !0 === e ? r = c(a.link, t) : console.log("getShareOpenID fail", t),
                    a.link = r,
                    i.window.WeixinJSBridge && i.window.WeixinJSBridge.invoke("shareTimeline", a, (function(e) {
                        !e || -1 == e.err_msg.indexOf(":ok") && -1 == e.err_msg.indexOf(":confirm") ? e && -1 != e.err_msg.indexOf(":cancel") ? n && n(-1) : n && n(-2, e) : n && n(0, 1)
                    }
                    ))
                }
                ))
            }
            ))
        } else
            i.window.document.addEventListener("WeixinJSBridgeReady", (function() {
                e(t, n, r)
            }
            ))
    }
}
, function(e, t, n) {
    "use strict";
    var i = 0;
    try {
        var r = window
          , o = WXGAME.Report11332.report
          , a = WXGAME.Env;
        if (r.location.host && "game.weixin.qq.com" == r.location.host) {
            document.addEventListener("touchend", (function e(t) {
                a.canIReport() && i < 5 ? (o({
                    iSceneId: 34,
                    iUIArea: 3410,
                    iPositionId: 1,
                    iActionId: 89,
                    iOpType: 2
                }),
                t.stopPropagation(),
                i++) : document.removeEventListener("touchend", e)
            }
            ), !1)
        }
    } catch (e) {}
}
, function(e, t, n) {
    "use strict";
    var i = n(7)
      , r = n(3)
      , o = n(10)
      , a = 0;
    function s(e) {
        if (!e.getBoundingClientRect)
            return {};
        var t = e.getBoundingClientRect().top
          , n = {
            ALLIN: !1,
            PARTIN: !1,
            NOTIN: !1
        }
          , i = t + e.scrollHeight;
        return t > a ? n.NOTIN = !0 : i > a ? n.PARTIN = !0 : n.ALLIN = !0,
        n
    }
    function c(e) {
        for (var t, n, i = 0, r = [], o = [], a = {}; i < e.length; ) {
            var s = e[i];
            switch (s) {
            case "{":
                0 == r.length ? (t = (t = o.join("")).replace(/^\s{0,}/g, "").replace(/\s{0,}$/g, ""),
                o.length = 0) : o.push(s),
                r.push(s);
                break;
            case "}":
                1 === r.length ? (n = o.join(""),
                a[t] = a[t] || [],
                a[t].push(n),
                o.length = 0) : o.push(s),
                r.pop();
                break;
            default:
                o.push(s)
            }
            i++
        }
        return a
    }
    e.exports = {
        saveFirstScreen: function() {
            var e = r.getQueryStr("urlcache") || ""
              , t = n(8)
              , l = (t = (window.WXGAME || {}).baseQualityReport || t).StartRunner("saveFirstScreen", {}, null);
            e.length <= 0 ? l.EndLogic({
                err_msg: "no_urlcache"
            }) : function(e) {
                try {
                    var t = window.__HTMLBUILDTIME__;
                    if (null != t && t > 0) {
                        var n = [window.location.host, window.location.pathname].join("/").replace(/\/\//g, "/");
                        o("/cgi-bin/gameconfigcenterwap/getgamecenterpagesetting", {
                            filter_key: encodeURIComponent(n),
                            method: "GET"
                        }, (function(n) {
                            if (n && "" + n.errcode == "0") {
                                var i = r.getValue(n, "data.compiletime");
                                t != i ? e && e.call(this, !1, n) : e && e.call(this, !0, n)
                            } else
                                e && e.call(this, !1, n)
                        }
                        ), (function(t) {
                            e && e.call(this, !1, t)
                        }
                        ))
                    } else
                        e && e.call(this, !1, {
                            errmsg: "no window.__HTMLBUILDTIME__"
                        })
                } catch (t) {
                    e && e.call(this, !1, {
                        errmsg: "catch error"
                    })
                }
            }((function(t, n) {
                if (a = 1.5 * window.innerHeight,
                !0 === t) {
                    var r = function() {
                        for (var e = document.getElementsByTagName("html")[0], t = e.getElementsByTagName("body")[0], n = e.cloneNode(!0), i = [t], r = [n.getElementsByTagName("body")[0]]; i.length > 0 && r.length > 0; ) {
                            var o = i.shift()
                              , a = r.shift()
                              , c = s(o);
                            if (!c.ALLIN)
                                if (c.PARTIN) {
                                    var l = o.childNodes;
                                    if (l.length > 0)
                                        for (var u = 0, d = l.length; u < d; u++)
                                            i.push(l[u]);
                                    var p = a.childNodes;
                                    if (p.length > 0)
                                        for (u = 0,
                                        d = p.length; u < d; u++) {
                                            var f = p[u];
                                            r.push(f)
                                        }
                                } else
                                    c.NOTIN && a.parentNode && a.parentNode.removeChild(a)
                        }
                        return n
                    }();
                    r = function(e) {
                        for (var t = [], n = {}, i = [e]; i.length > 0; ) {
                            var r = i.shift()
                              , o = r.childNodes;
                            if (o.length > 0)
                                for (var a = 0, s = o.length; a < s; a++)
                                    i.push(o[a]);
                            if (r.getAttribute && r)
                                if ("body" === r.nodeName.toLowerCase() && r.setAttribute("urlcache", !0),
                                "script" != r.nodeName.toLowerCase()) {
                                    if ("style" == r.nodeName.toLowerCase()) {
                                        var l = !!r.getAttribute("cacheable");
                                        if (f = !!r.getAttribute("style_type"))
                                            t.push(r);
                                        else {
                                            if (l) {
                                                r.parentNode && r.parentNode.removeChild(r);
                                                continue
                                            }
                                            t.push(r),
                                            r.setAttribute && r.setAttribute("cacheable", !0)
                                        }
                                    }
                                    var u = r.className + "";
                                    if (u && u.length > 0) {
                                        var d = u.replace(/\s/g, " ").split(" ");
                                        for (a = 0,
                                        s = d.length; a < s; a++)
                                            n[d[a]] || (n[d[a]] = !0)
                                    }
                                } else {
                                    var p = r.getAttribute("wxgameh5log")
                                      , f = r.getAttribute("script_type")
                                      , g = -1 != (r.src || "").indexOf("commlib/js/index.js")
                                      , m = -1 != (r.innerHTML || "").indexOf("weixin://whiteScreenEnd")
                                      , h = -1 != (r.innerHTML || "").indexOf("__HTMLBUILDTIME__");
                                    if (p || f || m || g || h)
                                        continue;
                                    r.parentNode && r.parentNode.removeChild(r)
                                }
                        }
                        n.html = !0,
                        n.body = !0;
                        var v = {}
                          , w = 0;
                        for (s = t.length; w < s; w++) {
                            var _ = c(t[w].innerHTML);
                            for (var y in _)
                                v[y] = _[y]
                        }
                        var b = [];
                        for (var y in v) {
                            -1 !== y.indexOf("icon_fun") && console.log(1);
                            var x = ("" + y).replace(/\s{1,}/g, " ").split(/[\s|,]/) || []
                              , k = !0;
                            for (a = 0,
                            s = x.length; a < s; a++) {
                                if (0 === ("" + x[a]).indexOf(".")) {
                                    for (var S = x[a].substr(1), I = !1, A = 0, C = (S = (S = (S = S.replace(/\[.*?\]/g, "")).replace(/:.*?$/g, "")).split(/[\.|#]/) || []).length; A < C; A++)
                                        if (S[A]in n) {
                                            I = !0;
                                            break
                                        }
                                    if (I) {
                                        k = !1;
                                        break
                                    }
                                } else
                                    k = !1
                            }
                            if (k)
                                delete v[y];
                            else
                                for (var T = v[y] || [], E = 0, O = T.length; E < O; E++)
                                    b.push([y, "{", T[E], "}"].join(""))
                        }
                        for (w = 1,
                        s = t.length; w < s; w++)
                            t[w].parentNode && t[w].parentNode.removeChild(t[w]);
                        t[0].innerHTML = b.join(" ");
                        var L = document.createElement("div");
                        return L.appendChild(e),
                        L
                    }(r),
                    l.EndLogic({
                        err_msg: "saveFirstScreen_start"
                    }),
                    i.callAfterReady((function() {
                        i.invoke("setGameData", {
                            key: e,
                            value: r.innerHTML,
                            pageCache: !0
                        }, (function(e) {
                            -1 == e.err_msg.indexOf(":ok") && l.EndLogic({
                                err_msg: "saveFirstScreen_fail"
                            })
                        }
                        ))
                    }
                    ))
                } else
                    l.EndLogic({
                        err_msg: "needCall_false_" + JSON.stringify(n)
                    })
            }
            ))
        }
    }
}
]);
